CMake: add CPPDAP_USE_EXTERNAL_GTEST_PACKAGE option
This commit is contained in:
parent
bbde7fb4dc
commit
ae76a3888e
@ -40,6 +40,7 @@ option_if_not_defined(CPPDAP_INSTALL_VSCODE_EXAMPLES "Build and install dap exam
|
|||||||
option_if_not_defined(CPPDAP_USE_EXTERNAL_NLOHMANN_JSON_PACKAGE "Use nlohmann_json with find_package() instead of building internal submodule" OFF)
|
option_if_not_defined(CPPDAP_USE_EXTERNAL_NLOHMANN_JSON_PACKAGE "Use nlohmann_json with find_package() instead of building internal submodule" OFF)
|
||||||
option_if_not_defined(CPPDAP_USE_EXTERNAL_RAPIDJSON_PACKAGE "Use RapidJSON with find_package()" OFF)
|
option_if_not_defined(CPPDAP_USE_EXTERNAL_RAPIDJSON_PACKAGE "Use RapidJSON with find_package()" OFF)
|
||||||
option_if_not_defined(CPPDAP_USE_EXTERNAL_JSONCPP_PACKAGE "Use JsonCpp with find_package()" OFF)
|
option_if_not_defined(CPPDAP_USE_EXTERNAL_JSONCPP_PACKAGE "Use JsonCpp with find_package()" OFF)
|
||||||
|
option_if_not_defined(CPPDAP_USE_EXTERNAL_GTEST_PACKAGE "Use googletest with find_package()" OFF)
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
# Directories
|
# Directories
|
||||||
@ -59,7 +60,7 @@ set_if_not_defined(CPPDAP_GOOGLETEST_DIR ${CPPDAP_THIRD_PARTY_DIR}/googletest)
|
|||||||
###########################################################
|
###########################################################
|
||||||
# Submodules
|
# Submodules
|
||||||
###########################################################
|
###########################################################
|
||||||
if(CPPDAP_BUILD_TESTS)
|
if(CPPDAP_BUILD_TESTS AND NOT CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
|
||||||
if(NOT EXISTS ${CPPDAP_GOOGLETEST_DIR}/.git)
|
if(NOT EXISTS ${CPPDAP_GOOGLETEST_DIR}/.git)
|
||||||
message(WARNING "third_party/googletest submodule missing.")
|
message(WARNING "third_party/googletest submodule missing.")
|
||||||
message(WARNING "Run: `git submodule update --init` to build tests.")
|
message(WARNING "Run: `git submodule update --init` to build tests.")
|
||||||
@ -161,7 +162,7 @@ function(cppdap_set_json_links target)
|
|||||||
target_link_libraries(${target} PRIVATE JsonCpp::JsonCpp)
|
target_link_libraries(${target} PRIVATE JsonCpp::JsonCpp)
|
||||||
else()
|
else()
|
||||||
target_include_directories(${target} PRIVATE "${CPPDAP_JSON_DIR}/include/")
|
target_include_directories(${target} PRIVATE "${CPPDAP_JSON_DIR}/include/")
|
||||||
endif()
|
endif()
|
||||||
endfunction(cppdap_set_json_links)
|
endfunction(cppdap_set_json_links)
|
||||||
|
|
||||||
function(cppdap_set_target_options target)
|
function(cppdap_set_target_options target)
|
||||||
@ -247,7 +248,7 @@ write_basic_package_version_file(
|
|||||||
)
|
)
|
||||||
configure_package_config_file(
|
configure_package_config_file(
|
||||||
${CPPDAP_CMAKE_CONFIG_TEMPLATE}
|
${CPPDAP_CMAKE_CONFIG_TEMPLATE}
|
||||||
"${CPPDAP_CMAKE_PROJECT_CONFIG_FILE}"
|
"${CPPDAP_CMAKE_PROJECT_CONFIG_FILE}"
|
||||||
INSTALL_DESTINATION ${CPPDAP_CONFIG_INSTALL_DIR}
|
INSTALL_DESTINATION ${CPPDAP_CONFIG_INSTALL_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -276,6 +277,8 @@ DESTINATION ${CPPDAP_CONFIG_INSTALL_DIR})
|
|||||||
|
|
||||||
# tests
|
# tests
|
||||||
if(CPPDAP_BUILD_TESTS)
|
if(CPPDAP_BUILD_TESTS)
|
||||||
|
enable_testing()
|
||||||
|
|
||||||
set(DAP_TEST_LIST
|
set(DAP_TEST_LIST
|
||||||
${CPPDAP_SRC_DIR}/any_test.cpp
|
${CPPDAP_SRC_DIR}/any_test.cpp
|
||||||
${CPPDAP_SRC_DIR}/chan_test.cpp
|
${CPPDAP_SRC_DIR}/chan_test.cpp
|
||||||
@ -290,16 +293,24 @@ if(CPPDAP_BUILD_TESTS)
|
|||||||
${CPPDAP_SRC_DIR}/traits_test.cpp
|
${CPPDAP_SRC_DIR}/traits_test.cpp
|
||||||
${CPPDAP_SRC_DIR}/typeinfo_test.cpp
|
${CPPDAP_SRC_DIR}/typeinfo_test.cpp
|
||||||
${CPPDAP_SRC_DIR}/variant_test.cpp
|
${CPPDAP_SRC_DIR}/variant_test.cpp
|
||||||
${CPPDAP_GOOGLETEST_DIR}/googletest/src/gtest-all.cc
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set(DAP_TEST_INCLUDE_DIR
|
if(CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
|
||||||
${CPPDAP_GOOGLETEST_DIR}/googlemock/include/
|
find_package(GTest REQUIRED)
|
||||||
${CPPDAP_GOOGLETEST_DIR}/googletest/
|
else()
|
||||||
${CPPDAP_GOOGLETEST_DIR}/googletest/include/
|
list(APPEND DAP_TEST_LIST
|
||||||
)
|
${CPPDAP_GOOGLETEST_DIR}/googletest/src/gtest-all.cc
|
||||||
|
)
|
||||||
|
|
||||||
|
set(DAP_TEST_INCLUDE_DIR
|
||||||
|
${CPPDAP_GOOGLETEST_DIR}/googlemock/include/
|
||||||
|
${CPPDAP_GOOGLETEST_DIR}/googletest/
|
||||||
|
${CPPDAP_GOOGLETEST_DIR}/googletest/include/
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_executable(cppdap-unittests ${DAP_TEST_LIST})
|
add_executable(cppdap-unittests ${DAP_TEST_LIST})
|
||||||
|
add_test(NAME cppdap-unittests COMMAND cppdap-unittests)
|
||||||
|
|
||||||
target_include_directories(cppdap-unittests PUBLIC ${DAP_TEST_INCLUDE_DIR} )
|
target_include_directories(cppdap-unittests PUBLIC ${DAP_TEST_INCLUDE_DIR} )
|
||||||
set_target_properties(cppdap-unittests PROPERTIES
|
set_target_properties(cppdap-unittests PROPERTIES
|
||||||
@ -312,7 +323,11 @@ if(CPPDAP_BUILD_TESTS)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
cppdap_set_target_options(cppdap-unittests)
|
cppdap_set_target_options(cppdap-unittests)
|
||||||
target_link_libraries(cppdap-unittests PRIVATE cppdap)
|
if(CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
|
||||||
|
target_link_libraries(cppdap-unittests PRIVATE cppdap GTest::gtest)
|
||||||
|
else()
|
||||||
|
target_link_libraries(cppdap-unittests PRIVATE cppdap)
|
||||||
|
endif()
|
||||||
endif(CPPDAP_BUILD_TESTS)
|
endif(CPPDAP_BUILD_TESTS)
|
||||||
|
|
||||||
# fuzzer
|
# fuzzer
|
||||||
|
Loading…
x
Reference in New Issue
Block a user