[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/15: gnu: Add c++-gsl.
From: |
guix-commits |
Subject: |
01/15: gnu: Add c++-gsl. |
Date: |
Sun, 31 Jan 2021 03:35:33 -0500 (EST) |
leoprikler pushed a commit to branch master
in repository guix.
commit 6bacfa63c10a277b559373f29f68723cfb31b0e9
Author: Raghav Gururajan <rg@raghavgururajan.name>
AuthorDate: Sat Jan 2 18:48:03 2021 -0500
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>
---
gnu/local.mk | 1 +
gnu/packages/cpp.scm | 29 +++++++
.../patches/c++-gsl-find-system-gtest.patch | 96 ++++++++++++++++++++++
3 files changed, 126 insertions(+)
diff --git a/gnu/local.mk b/gnu/local.mk
index 4ca5d60..4acba09 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -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 \
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 73a3ceb..d197122 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -63,6 +63,35 @@
#: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")
diff --git a/gnu/packages/patches/c++-gsl-find-system-gtest.patch
b/gnu/packages/patches/c++-gsl-find-system-gtest.patch
new file mode 100644
index 0000000..2def650
--- /dev/null
+++ b/gnu/packages/patches/c++-gsl-find-system-gtest.patch
@@ -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}
- branch master updated (a20b4f0 -> edfbb1d), guix-commits, 2021/01/31
- 01/15: gnu: Add c++-gsl.,
guix-commits <=
- 06/15: gnu: Add nimf., guix-commits, 2021/01/31
- 07/15: gnu: Add cmake-shared., guix-commits, 2021/01/31
- 09/15: gnu: Add range-v3., guix-commits, 2021/01/31
- 03/15: gnu: libappindicator: Propagate some inputs as per .pc file., guix-commits, 2021/01/31
- 02/15: gnu: Add fcitx-qt5., guix-commits, 2021/01/31
- 04/15: gnu: Add libchewing., guix-commits, 2021/01/31
- 05/15: gnu: Add hime., guix-commits, 2021/01/31
- 08/15: gnu: Add materialdecoration., guix-commits, 2021/01/31
- 11/15: gnu: Add qt5ct., guix-commits, 2021/01/31
- 13/15: gnu: Add rlottie-for-telegram-desktop., guix-commits, 2021/01/31