unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
blob ab19edbf8223627ba603d19fc3bc1de860bb0cfc 4005 bytes (raw)
name: packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
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

debug log:

solving ab19edbf8223627ba603d19fc3bc1de860bb0cfc ...
found ab19edbf8223627ba603d19fc3bc1de860bb0cfc in https://git.savannah.gnu.org/cgit/guix.git

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).