From 1cb029b33cefe5a5937ca446a00528787f5bafe4 Mon Sep 17 00:00:00 2001 From: Kevin Adler Date: Mon, 2 Nov 2020 11:21:17 -0600 Subject: Use internal getopt for IBM i and AIX --- CMakeLists.txt | 10 ++++++---- src/manifest_parser_perftest.cc | 3 +++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e02849d..efc4090 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,6 +112,9 @@ if(WIN32) endif() else() target_sources(libninja PRIVATE src/subprocess-posix.cc) + if(CMAKE_SYSTEM_NAME STREQUAL "OS400" OR CMAKE_SYSTEM_NAME STREQUAL "AIX") + target_sources(libninja PRIVATE src/getopt.c) + endif() endif() #Fixes GetActiveProcessorCount on MinGW @@ -119,11 +122,10 @@ if(MINGW) target_compile_definitions(libninja PRIVATE _WIN32_WINNT=0x0601 __USE_MINGW_ANSI_STDIO=1) endif() -# On IBM i (identified as "OS400" for compatibility reasons), this fixes missing -# PRId64 (and others) at compile time, and links to libutil for getopt_long -if(CMAKE_SYSTEM_NAME STREQUAL "OS400") +# On IBM i (identified as "OS400" for compatibility reasons) and AIX, this fixes missing +# PRId64 (and others) at compile time in C++ sources +if(CMAKE_SYSTEM_NAME STREQUAL "OS400" OR CMAKE_SYSTEM_NAME STREQUAL "AIX") string(APPEND CMAKE_CXX_FLAGS " -D__STDC_FORMAT_MACROS") - string(APPEND CMAKE_EXE_LINKER_FLAGS " -lutil") endif() # Main executable is library plus main() function. diff --git a/src/manifest_parser_perftest.cc b/src/manifest_parser_perftest.cc index 92f5e13..853d8e0 100644 --- a/src/manifest_parser_perftest.cc +++ b/src/manifest_parser_perftest.cc @@ -25,6 +25,9 @@ #ifdef _WIN32 #include "getopt.h" #include +#elif defined(_AIX) +#include "getopt.h" +#include #else #include #include -- cgit v0.12