aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarat Dukhan <marat@fb.com>2018-02-25 00:45:56 +0100
committerMarat Dukhan <marat@fb.com>2018-02-25 00:45:56 +0100
commit2b06b31f6a315162348e1f3c24325eedaf6cc559 (patch)
tree54d6da45a99e9210be6f7a1b2c4e89af20b7182c
parent9219ffea14465cfd8cf052b404db4a635c40171b (diff)
downloadplatform_external_pthreadpool-2b06b31f6a315162348e1f3c24325eedaf6cc559.tar.gz
platform_external_pthreadpool-2b06b31f6a315162348e1f3c24325eedaf6cc559.tar.bz2
platform_external_pthreadpool-2b06b31f6a315162348e1f3c24325eedaf6cc559.zip
Remove changes to global CMake variables
-rw-r--r--CMakeLists.txt24
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