gnu: Add libexpected.
* gnu/packages/cpp.scm (libexpected): New variable. * gnu/packages/patches/libexpected-nofetch.patch: Add patch. * gnu/local.mk: Reference patch.
This commit is contained in:
parent
635fefa049
commit
937bc58414
@ -1257,6 +1257,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \
|
||||
%D%/packages/patches/libcanberra-wayland-crash.patch \
|
||||
%D%/packages/patches/libcyaml-libyaml-compat.patch \
|
||||
%D%/packages/patches/libexpected-nofetch.patch \
|
||||
%D%/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch \
|
||||
%D%/packages/patches/libgit2-mtime-0.patch \
|
||||
%D%/packages/patches/libgnome-encoding.patch \
|
||||
|
@ -731,3 +731,41 @@ of C++14 components that complements @code{std} and Boost.")
|
||||
;; 32-bit is not supported: https://github.com/facebook/folly/issues/103
|
||||
(supported-systems '("aarch64-linux" "x86_64-linux"))
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public libexpected
|
||||
(package
|
||||
(name "libexpected")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/TartanLlama/expected")
|
||||
(commit (string-append "v" version))
|
||||
;; NOTE: Requires TL_CMAKE from custom
|
||||
;; repository. Should not affect reproducibility.
|
||||
(recursive? #t)))
|
||||
(file-name (git-file-name name version))
|
||||
;; NOTE: This patch will be unnecessary on subsequent tags.
|
||||
(patches (search-patches "libexpected-nofetch.patch"))
|
||||
(sha256
|
||||
(base32 "1ckzfrljzzdw9wf8hvdfjz4wjx5na57iwxc48mbv9rf5067m21a5"))))
|
||||
(build-system cmake-build-system)
|
||||
;; TODO: Clean up install phase.
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "./tests"))))))
|
||||
(native-inputs
|
||||
`(("catch2" ,catch-framework2)))
|
||||
(synopsis "C++11/14/17 std::expected with functional-style extensions")
|
||||
(description "@code{std::expected} is proposed as the preferred way to
|
||||
represent objects which will either have an expected value, or an unexpected
|
||||
value giving information about why something failed. Unfortunately, chaining
|
||||
together many computations which may fail can be verbose, as error-checking
|
||||
code will be mixed in with the actual programming logic. This implementation
|
||||
provides a number of utilities to make coding with expected cleaner.")
|
||||
(home-page "https://tl.tartanllama.xyz/")
|
||||
(license license:cc0)))
|
||||
|
27
gnu/packages/patches/libexpected-nofetch.patch
Normal file
27
gnu/packages/patches/libexpected-nofetch.patch
Normal file
@ -0,0 +1,27 @@
|
||||
Description: Disable FetchContent module
|
||||
No online operations are permitted during build package.
|
||||
Author: Nicholas Guriev <guriev-ns@ya.ru>
|
||||
Last-Update: Wed, 22 Jan 2020 21:51:33 +0300
|
||||
|
||||
Modified by Brett Gilio <brettg@gnu.org> on Dec 5, 2020
|
||||
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -4,16 +4,7 @@ project(tl-expected VERSION 1.0.0 LANGUAGES CXX)
|
||||
|
||||
option(EXPECTED_ENABLE_TESTS "Enable tests." ON)
|
||||
|
||||
-include(FetchContent)
|
||||
-FetchContent_Declare(
|
||||
- tl_cmake
|
||||
- GIT_REPOSITORY https://github.com/TartanLlama/tl-cmake.git
|
||||
-)
|
||||
-FetchContent_GetProperties(tl_cmake)
|
||||
-if(NOT tl_cmake_POPULATED)
|
||||
- FetchContent_Populate(tl_cmake)
|
||||
- set(CMAKE_MODULE_PATH ${tl_cmake_SOURCE_DIR} ${CMAKE_MODULE_PATH})
|
||||
-endif()
|
||||
+set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/tl-cmake ${CMAKE_MODULE_PATH})
|
||||
include(add-tl)
|
||||
|
||||
tl_add_library(expected SOURCES
|
Loading…
Reference in New Issue
Block a user