From 7e216fdf0c3ef418c617b3f1bb2de152ca8106f0 Mon Sep 17 00:00:00 2001 From: Sean Darcy Date: Mon, 4 Sep 2023 08:31:35 +1000 Subject: [PATCH] only include libraries if they dont already exist --- external/CMakeLists.txt | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index dc4a4c6..94d331a 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -1,14 +1,22 @@ -set(CPR_USE_SYSTEM_CURL ON CACHE BOOL "" FORCE) -add_subdirectory(cpr) -set(SECP256K1_ENABLE_MODULE_RECOVERY ON CACHE BOOL "" FORCE) -set(SECP256K1_VALGRIND OFF CACHE BOOL "" FORCE) -set(SECP256K1_BUILD_BENCHMARK OFF CACHE BOOL "" FORCE) -set(SECP256K1_BUILD_TESTS OFF CACHE BOOL "" FORCE) -set(SECP256K1_BUILD_EXHAUSTIVE_TESTS OFF CACHE BOOL "" FORCE) -set(SECP256K1_BUILD_CTIME_TESTS OFF CACHE BOOL "" FORCE) -set(SECP256K1_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) -add_subdirectory(secp256k1) -add_subdirectory(Catch2) +if(NOT TARGET cpr) + set(CPR_USE_SYSTEM_CURL ON CACHE BOOL "" FORCE) + add_subdirectory(cpr) +endif() + +if(NOT TARGET secp256k1) + set(SECP256K1_ENABLE_MODULE_RECOVERY ON CACHE BOOL "" FORCE) + set(SECP256K1_VALGRIND OFF CACHE BOOL "" FORCE) + set(SECP256K1_BUILD_BENCHMARK OFF CACHE BOOL "" FORCE) + set(SECP256K1_BUILD_TESTS OFF CACHE BOOL "" FORCE) + set(SECP256K1_BUILD_EXHAUSTIVE_TESTS OFF CACHE BOOL "" FORCE) + set(SECP256K1_BUILD_CTIME_TESTS OFF CACHE BOOL "" FORCE) + set(SECP256K1_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) + add_subdirectory(secp256k1) +endif() + +if(NOT TARGET Catch2) + add_subdirectory(Catch2) +endif() # RLPValue is built using autotools include(ExternalProject) @@ -38,6 +46,8 @@ add_dependencies(rlpvalue librlpvalue) set_target_properties(rlpvalue PROPERTIES IMPORTED_LOCATION ${RLP_SHARED_LIB}) set_target_properties(rlpvalue PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${RLP_INCLUDES}) -set(JSON_BuildTests OFF CACHE INTERNAL "") -set(JSON_MultipleHeaders ON CACHE BOOL "") # Allows multi-header nlohmann use -add_subdirectory(json EXCLUDE_FROM_ALL) +if(NOT TARGET nlohmann_json) + set(JSON_BuildTests OFF CACHE INTERNAL "") + set(JSON_MultipleHeaders ON CACHE BOOL "") # Allows multi-header nlohmann use + add_subdirectory(json EXCLUDE_FROM_ALL) +endif()