diff options
author | Marat Dukhan <marat@fb.com> | 2018-02-25 00:45:56 +0100 |
---|---|---|
committer | Marat Dukhan <marat@fb.com> | 2018-02-25 00:45:56 +0100 |
commit | 2b06b31f6a315162348e1f3c24325eedaf6cc559 (patch) | |
tree | 54d6da45a99e9210be6f7a1b2c4e89af20b7182c | |
parent | 9219ffea14465cfd8cf052b404db4a635c40171b (diff) | |
download | pthreadpool-2b06b31f6a315162348e1f3c24325eedaf6cc559.tar.gz |
Remove changes to global CMake variables
-rw-r--r-- | CMakeLists.txt | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d63e04..b2affe4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,18 @@ IF(PTHREADPOOL_BUILD_TESTS) ENABLE_TESTING() ENDIF() +MACRO(PTHREADPOOL_TARGET_ENABLE_C99 target) + IF(${CMAKE_VERSION} VERSION_LESS "3.1") + IF(NOT MSVC) + TARGET_COMPILE_OPTIONS(${target} PRIVATE -std=c99) + ENDIF() + ELSE() + SET_TARGET_PROPERTIES(${target} PROPERTIES + C_STANDARD 99 + C_EXTENSIONS NO) + ENDIF() +ENDMACRO() + # ---[ Download deps SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps CACHE PATH "Confu-style dependencies source directory") @@ -52,12 +64,6 @@ IF(PTHREADPOOL_BUILD_BENCHMARKS AND NOT DEFINED GOOGLEBENCHMARK_SOURCE_DIR) SET(GOOGLEBENCHMARK_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark" CACHE STRING "Google Benchmark source directory") ENDIF() -# ---[ Build flags -IF(NOT MSVC) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -ENDIF() - # ---[ pthreadpool library IF(CMAKE_SYSTEM_NAME STREQUAL "Emscripten") SET(PTHREADPOOL_SRCS src/threadpool-shim.c) @@ -83,19 +89,21 @@ ELSEIF(PTHREADPOOL_LIBRARY_TYPE STREQUAL "static") ELSE() MESSAGE(FATAL_ERROR "Unsupported library type ${PTHREADPOOL_LIBRARY_TYPE}") ENDIF() + +PTHREADPOOL_TARGET_ENABLE_C99(pthreadpool) TARGET_LINK_LIBRARIES(pthreadpool PUBLIC pthreadpool_interface) IF(NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten") SET(CMAKE_THREAD_PREFER_PTHREAD TRUE) FIND_PACKAGE(Threads REQUIRED) IF(CMAKE_USE_PTHREADS_INIT) IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread") + TARGET_COMPILE_OPTIONS(pthreadpool PUBLIC -pthread) ENDIF() ENDIF() TARGET_LINK_LIBRARIES(pthreadpool PUBLIC ${CMAKE_THREAD_LIBS_INIT}) ENDIF() IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") - TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE -D_GNU_SOURCE) + TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE _GNU_SOURCE=1) ENDIF() # ---[ Configure FXdiv |