mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-31 23:06:59 +01:00
gnu: Add c++-gsl.
* 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>
This commit is contained in:
parent
a20b4f07bf
commit
6bacfa63c1
3 changed files with 126 additions and 0 deletions
|
@ -913,6 +913,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/cursynth-wave-rand.patch \
|
||||
%D%/packages/patches/cvs-CVE-2017-12836.patch \
|
||||
%D%/packages/patches/cyrus-sasl-ac-try-run-fix.patch \
|
||||
%D%/packages/patches/c++-gsl-find-system-gtest.patch \
|
||||
%D%/packages/patches/date-output-pkg-config-files.patch \
|
||||
%D%/packages/patches/datefudge-gettimeofday.patch \
|
||||
%D%/packages/patches/dbacl-include-locale.h.patch \
|
||||
|
|
|
@ -63,6 +63,35 @@ (define-module (gnu packages cpp)
|
|||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages web))
|
||||
|
||||
(define-public c++-gsl
|
||||
(package
|
||||
(name "c++-gsl")
|
||||
(version "3.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
(git-reference
|
||||
(url "https://github.com/microsoft/GSL.git")
|
||||
(commit
|
||||
(string-append "v" version))))
|
||||
(file-name
|
||||
(git-file-name name version))
|
||||
(patches
|
||||
(search-patches
|
||||
"c++-gsl-find-system-gtest.patch"))
|
||||
(sha256
|
||||
(base32 "0gbvr48f03830g3154bjhw92b8ggmg6wwh5xyb8nppk9v6w752l0"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("googletest" ,googletest)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(synopsis "Guidelines Support Library")
|
||||
(description "c++-gsl contains functions and types that are suggested for
|
||||
use by the C++ Core Guidelines maintained by the Standard C++ Foundation.")
|
||||
(home-page "https://github.com/microsoft/GSL/")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public libzen
|
||||
(package
|
||||
(name "libzen")
|
||||
|
|
96
gnu/packages/patches/c++-gsl-find-system-gtest.patch
Normal file
96
gnu/packages/patches/c++-gsl-find-system-gtest.patch
Normal file
|
@ -0,0 +1,96 @@
|
|||
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}
|
Loading…
Reference in a new issue