gnu: Add catch2-3.1.

* gnu/packages/check.scm (catch2-3.1): New variable.
This commit is contained in:
Liliana Marie Prikler 2022-12-08 09:31:42 +01:00
parent b19f5bbac7
commit 407b4f5661
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87

View file

@ -580,6 +580,85 @@ (define-public cbehave
pattern.") pattern.")
(license license:apsl2)))) (license license:apsl2))))
(define-public catch2-3.1
(package
(name "catch2")
(version "3.1.1")
(home-page "https://github.com/catchorg/Catch2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/catchorg/Catch2")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1qnr5b3zq8brh43f924rgnw5gmmjf9ax7kbq2crz1mlwgmdymxlp"))))
(outputs (list "out" "static"))
(build-system meson-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-meson
(lambda _
(substitute* "src/catch2/meson.build"
(("static_library") "both_libraries"))))
(add-after 'install 'install-cmake-config
(lambda* (#:key outputs #:allow-other-keys)
(define prefix (string-append (assoc-ref outputs "out")
"/lib/cmake/Catch2/"))
(mkdir-p prefix)
(call-with-output-file (string-append
prefix
"catch2-config-version.cmake")
(lambda (port)
(format
port
"set(PACKAGE_VERSION ~s)~@
if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)~@
set(PACKAGE_VERSION_EXACT TRUE)~@
set(PACKAGE_VERSION_COMPATIBLE TRUE)~@
elseif(PACKAGE_FIND_VERSION VERSION_LESS_EQUAL ~
PACKAGE_VERSION)~@
set(PACKAGE_VERSION_COMPATIBLE TRUE)~@
else()~@
set(PACKAGE_VERSION_COMPATIBLE FALSE)~@
endif()"
#$version)))
(call-with-output-file (string-append prefix
"catch2-config.cmake")
(lambda (port)
(format
port
"include(FindPkgConfig)~@
pkg_check_modules(CATCH2 IMPORTED_TARGET GLOBAL catch2)~@
pkg_check_modules(CATCH2MAIN ~
IMPORTED_TARGET GLOBAL ~
catch2 catch2-with-main)~@
if(CATCH2_FOUND)~@
add_library(Catch2::Catch2 ALIAS PkgConfig::CATCH2)~@
endif()~@
if(CATCH2MAIN_FOUND)~@
add_library(Catch2::Catch2WithMain ~
ALIAS PkgConfig::CATCH2MAIN)~@
endif()")))))
(add-after 'install 'move-static-libraries
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(static (assoc-ref outputs "static")))
(for-each
(lambda (file)
(install-file file (string-append static "/lib"))
(delete-file file))
(find-files (string-append out "/lib")
"\\.a$"))))))))
(inputs (list python-wrapper))
(synopsis "Automated test framework for C++ and Objective-C")
(description "Catch2 stands for C++ Automated Test Cases in Headers and is
a multi-paradigm automated test framework for C++ and Objective-C.")
(license license:boost1.0)))
(define-public cmdtest (define-public cmdtest
(package (package
(name "cmdtest") (name "cmdtest")