From f6a79db4d2c0a8bc1dbe1cefe31c25255b20bb20 Mon Sep 17 00:00:00 2001 From: topazus Date: Mon, 18 Dec 2023 14:26:43 +0800 Subject: [PATCH] Add ROARING_USE_CPM option in CMake --- CMakeLists.txt | 6 +++++- microbenchmarks/CMakeLists.txt | 28 ++++++++++++++++------------ tools/cmake/FindCTargets.cmake | 24 ++++++++++++++++++------ 3 files changed, 39 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9218de391..baea6d5c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,7 +52,11 @@ endif() set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/tools/cmake") -include(cmake/CPM.cmake) +option(ROARING_USE_CPM "Use CPM to fetch dependencies" ON) + +if(ROARING_USE_CPM) + include(cmake/CPM.cmake) +endif() find_package(CTargets) find_package(Options) find_package(LTO) diff --git a/microbenchmarks/CMakeLists.txt b/microbenchmarks/CMakeLists.txt index 4a7288e70..04ba24c7a 100644 --- a/microbenchmarks/CMakeLists.txt +++ b/microbenchmarks/CMakeLists.txt @@ -3,19 +3,23 @@ set (BENCHMARK_DATA_DIR "${PROJECT_SOURCE_DIR}/benchmarks/realdata/") include(${PROJECT_SOURCE_DIR}/tools/cmake/Import.cmake) -set_off(BENCHMARK_ENABLE_TESTING) -set_off(BENCHMARK_ENABLE_INSTALL) -set_off(BENCHMARK_ENABLE_WERROR) -set(BENCHMARK_ENABLE_WERROR OFF) - CPMAddPackage( - NAME benchmark - GITHUB_REPOSITORY google/benchmark - GIT_TAG 3441176 - OPTIONS "BENCHMARK_ENABLE_TESTING OFF" - "BENCHMARK_ENABLE_INSTALL OFF" - "BENCHMARK_ENABLE_WERROR OFF" +if(ROARING_USE_CPM) + set_off(BENCHMARK_ENABLE_TESTING) + set_off(BENCHMARK_ENABLE_INSTALL) + set_off(BENCHMARK_ENABLE_WERROR) + set(BENCHMARK_ENABLE_WERROR OFF) + CPMAddPackage( + NAME benchmark + GITHUB_REPOSITORY google/benchmark + GIT_TAG 3441176 + OPTIONS "BENCHMARK_ENABLE_TESTING OFF" + "BENCHMARK_ENABLE_INSTALL OFF" + "BENCHMARK_ENABLE_WERROR OFF" - ) + ) +else() + find_package(benchmark REQUIRED) +endif() add_executable(bench bench.cpp) target_link_libraries(bench PRIVATE roaring) diff --git a/tools/cmake/FindCTargets.cmake b/tools/cmake/FindCTargets.cmake index 8eb227e6c..243cc848a 100644 --- a/tools/cmake/FindCTargets.cmake +++ b/tools/cmake/FindCTargets.cmake @@ -4,11 +4,15 @@ endif () include(${PROJECT_SOURCE_DIR}/tools/cmake/Import.cmake) set(BUILD_STATIC_LIB ON) if (ENABLE_ROARING_TESTS) - CPMAddPackage( - NAME cmocka - GITHUB_REPOSITORY clibs/cmocka - GIT_TAG f5e2cd7 + if(ROARING_USE_CPM) + CPMAddPackage( + NAME cmocka + GITHUB_REPOSITORY clibs/cmocka + GIT_TAG f5e2cd7 ) + else() + find_package(cmocka REQUIRED) + endif() endif() function(add_c_test TEST_NAME) @@ -18,7 +22,11 @@ function(add_c_test TEST_NAME) add_executable(${TEST_NAME} ${TEST_NAME}.c) - target_link_libraries(${TEST_NAME} roaring cmocka-static) + if(ROARING_USE_CPM) + target_link_libraries(${TEST_NAME} roaring cmocka-static) + else() + target_link_libraries(${TEST_NAME} roaring cmocka) + endif() add_test(${TEST_NAME} ${TEST_NAME}) endfunction(add_c_test) @@ -35,7 +43,11 @@ if (CMAKE_VERSION VERSION_GREATER 2.8.10) get_directory_property(parent_dir PARENT_DIRECTORY) target_include_directories(${TEST_NAME} PRIVATE "${parent_dir}/cpp") - target_link_libraries(${TEST_NAME} roaring cmocka-static) + if(ROARING_USE_CPM) + target_link_libraries(${TEST_NAME} roaring cmocka-static) + else() + target_link_libraries(${TEST_NAME} roaring cmocka) + endif() add_test(${TEST_NAME} ${TEST_NAME}) endfunction(add_cpp_test)