diff options
author | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2022-12-08 09:31:42 +0100 |
---|---|---|
committer | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2022-12-15 16:55:51 +0100 |
commit | 407b4f5661ea806ddc1056b35722fd551237f87d (patch) | |
tree | 18e4be99a684f2020696859e31e70a3d8aa01694 | |
parent | b19f5bbac79522438bb9deca8bbb28fc0f751903 (diff) | |
download | guix-407b4f5661ea806ddc1056b35722fd551237f87d.tar guix-407b4f5661ea806ddc1056b35722fd551237f87d.tar.gz |
gnu: Add catch2-3.1.
* gnu/packages/check.scm (catch2-3.1): New variable.
-rw-r--r-- | gnu/packages/check.scm | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index af0ad1c00f..aaa41777dc 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -580,6 +580,85 @@ It allows the specification of behaviour scenarios using a given-when-then pattern.") (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 (package (name "cmdtest") |