Always define _XOPEN_SOURCE if _POSIX_C_SOURCE is too

This commit is contained in:
Chris Robinson
2016-01-21 06:08:18 -08:00
parent 8f26ad4ba2
commit 0a9e9858f9
+3 -16
View File
@@ -103,29 +103,16 @@ ELSE()
ENDIF()
if(NOT WIN32)
# Check if _POSIX_C_SOURCE needs to be set for POSIX functions
# Check if _POSIX_C_SOURCE and _XOPEN_SOURCE needs to be set for POSIX functions
CHECK_SYMBOL_EXISTS(posix_memalign stdlib.h HAVE_POSIX_MEMALIGN_DEFAULT)
IF(NOT HAVE_POSIX_MEMALIGN_DEFAULT)
SET(OLD_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -D_POSIX_C_SOURCE=200809L")
SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700")
CHECK_SYMBOL_EXISTS(posix_memalign stdlib.h HAVE_POSIX_MEMALIGN_POSIX)
IF(NOT HAVE_POSIX_MEMALIGN_POSIX)
SET(CMAKE_REQUIRED_FLAGS ${OLD_REQUIRED_FLAGS})
ELSE()
ADD_DEFINITIONS(-D_POSIX_C_SOURCE=200809L)
ENDIF()
ENDIF()
# Check if _XOPEN_SOURCE needs to be set (if POSIX < 2008)
CHECK_SYMBOL_EXISTS(scandir dirent.h HAVE_SCANDIR_DEFAULT)
IF(NOT HAVE_SCANDIR_DEFAULT)
SET(OLD_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -D_XOPEN_SOURCE=700")
CHECK_SYMBOL_EXISTS(scandir dirent.h HAVE_SCANDIR_XOPEN)
IF(NOT HAVE_SCANDIR_XOPEN)
SET(CMAKE_REQUIRED_FLAGS ${OLD_REQUIRED_FLAGS})
ELSE()
ADD_DEFINITIONS(-D_XOPEN_SOURCE=700)
ADD_DEFINITIONS(-D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700)
ENDIF()
ENDIF()
UNSET(OLD_REQUIRED_FLAGS)