1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-15 12:16:40 +08:00

Utilities: Activate POSIX APIs even without compiler extensions

Compile some third-party libraries with preprocessor definitions that
activate POSIX APIs even when compiler extensions are not enabled.
We already do this in libuv, inherited from the upstream buildsystem.

This extends commit f034b0f663 (CMake compilation: do not use compiler
extensions, 2020-03-14, v3.18.0-rc1~494^2).

Issue: #20454
This commit is contained in:
Brad King
2022-06-02 16:14:20 -04:00
parent 3ba324b6b6
commit c7c3e39e4f
4 changed files with 40 additions and 0 deletions

View File

@@ -8,6 +8,14 @@ elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
endif()
# Activate POSIX APIs.
if(CMAKE_SYSTEM_NAME MATCHES "^(AIX|OS400)$")
add_definitions(-D_ALL_SOURCE)
endif()
if(NOT CMAKE_SYSTEM_NAME MATCHES "BSD|Darwin|Windows")
add_definitions(-D_XOPEN_SOURCE=600)
endif()
add_definitions(-D_FILE_OFFSET_BITS=64)
add_library(cmbzip2
blocksort.c huffman.c crctable.c randtable.c compress.c decompress.c bzlib.c)

View File

@@ -119,6 +119,20 @@ elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
endif()
# Activate POSIX APIs.
if(CMAKE_SYSTEM_NAME MATCHES "^(AIX|OS400)$")
add_definitions(-D_ALL_SOURCE)
endif()
if(CMAKE_SYSTEM_NAME MATCHES "^(Linux)$")
add_definitions(-D_DEFAULT_SOURCE -D_BSD_SOURCE)
endif()
if(CMAKE_SYSTEM_NAME MATCHES "^(SunOS)$")
add_definitions(-D__EXTENSIONS__)
endif()
if(NOT CMAKE_SYSTEM_NAME MATCHES "BSD|Darwin|Windows")
add_definitions(-D_XOPEN_SOURCE=600)
endif()
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |

View File

@@ -103,6 +103,16 @@ ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
ENDIF()
# Activate POSIX APIs.
if(CMAKE_SYSTEM_NAME MATCHES "^(Linux)$")
add_definitions(-D_DEFAULT_SOURCE -D_BSD_SOURCE)
string(APPEND CMAKE_REQUIRED_DEFINITIONS " -D_DEFAULT_SOURCE -D_BSD_SOURCE")
endif()
if(NOT CMAKE_SYSTEM_NAME MATCHES "BSD|Darwin|Windows")
add_definitions(-D_XOPEN_SOURCE=600)
string(APPEND CMAKE_REQUIRED_DEFINITIONS " -D_XOPEN_SOURCE=600")
endif()
IF(0) # CMake does not need flags specific to libarchive upstream development.
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
OPTION(ENABLE_WERROR "Treat warnings as errors - default is ON for Debug, OFF otherwise." ON)

View File

@@ -166,6 +166,14 @@ ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
ENDIF()
# Activate POSIX APIs.
if(CMAKE_SYSTEM_NAME MATCHES "^(AIX|OS400)$")
add_definitions(-D_ALL_SOURCE)
endif()
if(NOT CMAKE_SYSTEM_NAME MATCHES "BSD|Darwin|Windows")
add_definitions(-D_XOPEN_SOURCE=600)
endif()
ADD_LIBRARY(cmliblzma STATIC ${LZMA_SRCS})
IF(CMAKE_C_COMPILER_ID STREQUAL "XL")