* gnu/packages/cpp.scm (c++-gsl): New variable. * gnu/packages/patches/c++-gsl-find-system-gtest.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at>
		
			
				
	
	
		
			96 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From f5cf01083baf7e8dc8318db3648bc6098dc32d67 Mon Sep 17 00:00:00 2001
 | 
						|
From: Nicholas Guriev <guriev-ns@ya.ru>
 | 
						|
Date: Sat, 18 Apr 2020 13:30:17 +0300
 | 
						|
Subject: [PATCH] Search for GoogleTest via pkg-config first
 | 
						|
 | 
						|
---
 | 
						|
 tests/CMakeLists.txt | 55 ++++++++++++++++++++++++--------------------
 | 
						|
 1 file changed, 30 insertions(+), 25 deletions(-)
 | 
						|
 | 
						|
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
 | 
						|
index 02193197..53d475c2 100644
 | 
						|
--- a/tests/CMakeLists.txt
 | 
						|
+++ b/tests/CMakeLists.txt
 | 
						|
@@ -1,36 +1,41 @@
 | 
						|
 cmake_minimum_required(VERSION 3.0.2)
 | 
						|
 
 | 
						|
 project(GSLTests CXX)
 | 
						|
+include(FindPkgConfig)
 | 
						|
 
 | 
						|
 # will make visual studio generated project group files
 | 
						|
 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 | 
						|
 
 | 
						|
-configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt)
 | 
						|
-execute_process(
 | 
						|
-    COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
 | 
						|
-    RESULT_VARIABLE result
 | 
						|
-    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download
 | 
						|
-)
 | 
						|
-if(result)
 | 
						|
-    message(FATAL_ERROR "CMake step for googletest failed: ${result}")
 | 
						|
-endif()
 | 
						|
+pkg_search_module(GTestMain gtest_main)
 | 
						|
+if (NOT GTestMain_FOUND)
 | 
						|
+    configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt)
 | 
						|
+    execute_process(
 | 
						|
+        COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
 | 
						|
+        RESULT_VARIABLE result
 | 
						|
+        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download
 | 
						|
+    )
 | 
						|
+    if(result)
 | 
						|
+        message(FATAL_ERROR "CMake step for googletest failed: ${result}")
 | 
						|
+    endif()
 | 
						|
 
 | 
						|
-execute_process(
 | 
						|
-    COMMAND ${CMAKE_COMMAND} --build .
 | 
						|
-    RESULT_VARIABLE result
 | 
						|
-    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download
 | 
						|
-)
 | 
						|
-if(result)
 | 
						|
-    message(FATAL_ERROR "CMake step for googletest failed: ${result}")
 | 
						|
-endif()
 | 
						|
+    execute_process(
 | 
						|
+        COMMAND ${CMAKE_COMMAND} --build .
 | 
						|
+        RESULT_VARIABLE result
 | 
						|
+        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download
 | 
						|
+    )
 | 
						|
+    if(result)
 | 
						|
+        message(FATAL_ERROR "CMake step for googletest failed: ${result}")
 | 
						|
+    endif()
 | 
						|
 
 | 
						|
-set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
 | 
						|
+    set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
 | 
						|
+    set(GTestMain_LIBRARIES gtest_main)
 | 
						|
 
 | 
						|
-add_subdirectory(
 | 
						|
-    ${CMAKE_CURRENT_BINARY_DIR}/googletest-src
 | 
						|
-    ${CMAKE_CURRENT_BINARY_DIR}/googletest-build
 | 
						|
-    EXCLUDE_FROM_ALL
 | 
						|
-)
 | 
						|
+    add_subdirectory(
 | 
						|
+        ${CMAKE_CURRENT_BINARY_DIR}/googletest-src
 | 
						|
+        ${CMAKE_CURRENT_BINARY_DIR}/googletest-build
 | 
						|
+        EXCLUDE_FROM_ALL
 | 
						|
+    )
 | 
						|
+endif()
 | 
						|
 
 | 
						|
 if (MSVC AND (GSL_CXX_STANDARD EQUAL 17))
 | 
						|
     set(GSL_CPLUSPLUS_OPT -Zc:__cplusplus -permissive-)
 | 
						|
@@ -149,7 +154,7 @@ function(add_gsl_test name)
 | 
						|
     target_link_libraries(${name}
 | 
						|
         GSL
 | 
						|
         gsl_tests_config
 | 
						|
-        gtest_main
 | 
						|
+        ${GTestMain_LIBRARIES}
 | 
						|
     )
 | 
						|
     add_test(
 | 
						|
         ${name}
 | 
						|
@@ -254,7 +259,7 @@ function(add_gsl_test_noexcept name)
 | 
						|
     target_link_libraries(${name}
 | 
						|
         GSL
 | 
						|
         gsl_tests_config_noexcept
 | 
						|
-        gtest_main
 | 
						|
+        ${GTestMain_LIBRARIES}
 | 
						|
     )
 | 
						|
     add_test(
 | 
						|
       ${name}
 |