diff options
author | Marat Dukhan <marat@fb.com> | 2018-01-31 17:21:26 -0800 |
---|---|---|
committer | Marat Dukhan <marat@fb.com> | 2018-01-31 18:36:19 -0800 |
commit | b76d1ca08902ed31dd7ae7f364f53ef35190464a (patch) | |
tree | 3681db88cd4e6558e336815a2f102d82a45f8119 | |
parent | 7d77d72beda99d49ea57ff0b438f8f0db1ef756a (diff) | |
download | pthreadpool-b76d1ca08902ed31dd7ae7f364f53ef35190464a.tar.gz |
CMake: support options to use pre-downloaded deps
-rw-r--r-- | CMakeLists.txt | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index f7f93db..fe2c694 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,28 +22,34 @@ SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps CACHE PATH "Confu-style dependencies binary directory") -IF(NOT TARGET fxdiv) +IF(NOT DEFINED FXDIV_SOURCE_DIR) + MESSAGE(STATUS "Downloading FXdiv to ${CONFU_DEPENDENCIES_SOURCE_DIR}/fxdiv (define FXDIV_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadFXdiv.cmake "${CMAKE_BINARY_DIR}/fxdiv-download/CMakeLists.txt") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/fxdiv-download") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/fxdiv-download") + SET(FXDIV_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/fxdiv" CACHE STRING "FXdiv source directory") ENDIF() -IF(NOT TARGET gtest) +IF(PTHREADPOOL_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR) + MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CMAKE_BINARY_DIR}/googletest-download/CMakeLists.txt") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/googletest-download") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/googletest-download") + SET(GOOGLETEST_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" CACHE STRING "Google Test source directory") ENDIF() -IF(NOT TARGET benchmark) +IF(PTHREADPOOL_BUILD_BENCHMARKS AND NOT DEFINED GOOGLEBENCHMARK_SOURCE_DIR) + MESSAGE(STATUS "Downloading Google Benchmark to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark (define GOOGLEBENCHMARK_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadGoogleBenchmark.cmake "${CMAKE_BINARY_DIR}/googlebenchmark-download/CMakeLists.txt") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/googlebenchmark-download") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/googlebenchmark-download") + SET(GOOGLEBENCHMARK_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark" CACHE STRING "Google Benchmark source directory") ENDIF() # ---[ Build flags @@ -97,7 +103,7 @@ IF(NOT TARGET fxdiv) SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "") SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "") ADD_SUBDIRECTORY( - "${CONFU_DEPENDENCIES_SOURCE_DIR}/fxdiv" + "${FXDIV_SOURCE_DIR}" "${CONFU_DEPENDENCIES_BINARY_DIR}/fxdiv") ENDIF() TARGET_LINK_LIBRARIES(pthreadpool PRIVATE fxdiv) @@ -111,7 +117,7 @@ IF(PTHREADPOOL_BUILD_TESTS) IF(NOT TARGET gtest) SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE) ADD_SUBDIRECTORY( - "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" + "${GOOGLETEST_SOURCE_DIR}" "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest") ENDIF() @@ -125,7 +131,7 @@ IF(PTHREADPOOL_BUILD_BENCHMARKS) IF(NOT TARGET benchmark) SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "") ADD_SUBDIRECTORY( - "${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark" + "${GOOGLEBENCHMARK_SOURCE_DIR}" "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark") ENDIF() |