aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch')
-rw-r--r--gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch103
1 files changed, 103 insertions, 0 deletions
diff --git a/gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch b/gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch
new file mode 100644
index 0000000000..ab19edbf82
--- /dev/null
+++ b/gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch
@@ -0,0 +1,103 @@
+from https://github.com/google/cppdap/pull/124
+
+From 40d9eaf3b6eca2ab8d5558e8935d56a75bd97183 Mon Sep 17 00:00:00 2001
+From: topazus <topazus@outlook.com>
+Date: Wed, 27 Dec 2023 19:56:49 +0800
+Subject: [PATCH] CMake: add CPPDAP_USE_EXTERNAL_GTEST_PACKAGE option
+
+---
+ CMakeLists.txt | 35 +++++++++++++++++++++++++----------
+ 1 file changed, 25 insertions(+), 10 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1b3c321..7292f3c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -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_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_GTEST_PACKAGE "Use googletest with find_package()" OFF)
+
+ ###########################################################
+ # Directories
+@@ -59,7 +60,7 @@ set_if_not_defined(CPPDAP_GOOGLETEST_DIR ${CPPDAP_THIRD_PARTY_DIR}/googletest)
+ ###########################################################
+ # Submodules
+ ###########################################################
+-if(CPPDAP_BUILD_TESTS)
++if(CPPDAP_BUILD_TESTS AND NOT CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
+ if(NOT EXISTS ${CPPDAP_GOOGLETEST_DIR}/.git)
+ message(WARNING "third_party/googletest submodule missing.")
+ 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)
+ else()
+ target_include_directories(${target} PRIVATE "${CPPDAP_JSON_DIR}/include/")
+- endif()
++ endif()
+ endfunction(cppdap_set_json_links)
+
+ function(cppdap_set_target_options target)
+@@ -247,7 +248,7 @@ write_basic_package_version_file(
+ )
+ configure_package_config_file(
+ ${CPPDAP_CMAKE_CONFIG_TEMPLATE}
+- "${CPPDAP_CMAKE_PROJECT_CONFIG_FILE}"
++ "${CPPDAP_CMAKE_PROJECT_CONFIG_FILE}"
+ INSTALL_DESTINATION ${CPPDAP_CONFIG_INSTALL_DIR}
+ )
+
+@@ -276,6 +277,8 @@ DESTINATION ${CPPDAP_CONFIG_INSTALL_DIR})
+
+ # tests
+ if(CPPDAP_BUILD_TESTS)
++ enable_testing()
++
+ set(DAP_TEST_LIST
+ ${CPPDAP_SRC_DIR}/any_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}/typeinfo_test.cpp
+ ${CPPDAP_SRC_DIR}/variant_test.cpp
+- ${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/
+- )
++ if(CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
++ find_package(GTest REQUIRED)
++ else()
++ 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_test(NAME cppdap-unittests COMMAND cppdap-unittests)
+
+ target_include_directories(cppdap-unittests PUBLIC ${DAP_TEST_INCLUDE_DIR} )
+ set_target_properties(cppdap-unittests PROPERTIES
+@@ -312,7 +323,11 @@ if(CPPDAP_BUILD_TESTS)
+ endif()
+
+ 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)
+
+ # fuzzer