GNU bug report logs - #64137
[PATCH 0/2] Build catch2@3 with CMake and update to 3.3.2

Previous Next

Package: guix-patches;

Reported by: David Elsing <david.elsing <at> posteo.net>

Date: Sat, 17 Jun 2023 19:28:02 UTC

Severity: normal

Tags: patch

Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 64137 in the body.
You can then email your comments to 64137 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sat, 17 Jun 2023 19:28:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to David Elsing <david.elsing <at> posteo.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sat, 17 Jun 2023 19:28:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: guix-patches <at> gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH 0/2] Build catch2 <at> 3 with CMake and update to 3.3.2
Date: Sat, 17 Jun 2023 19:27:18 +0000
Currently, the catch2-3.1 package is built with Meson. I think this was done
to build both static and shared libraries together, which is not supported by
CMake. Unfortunately, several CMake files (in lib/cmake/Catch2) are not
installed and to install them, CMake would be necessary as build dependency
anyway. Only the clingo package depends on this package and the static output
is not used in another package.

Would it be acceptable to build it with CMake instead, like the catch2 package
(for version 2)? I also included a separate package for the static version. Of
course, the documentation and headers are then installed in both packages.

David Elsing (2):
  gnu: catch2-3.1: Rename to catch2-3.3.
  gnu: Add catch2-static-3.3.

 gnu/packages/check.scm    | 81 ++++++++++-----------------------------
 gnu/packages/potassco.scm |  2 +-
 2 files changed, 21 insertions(+), 62 deletions(-)


base-commit: 6e1215fb9c03ccb4a2d4440990aee5a66a935268
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sat, 17 Jun 2023 19:31:02 GMT) Full text and rfc822 format available.

Message #8 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH 1/2] gnu: catch2-3.1: Rename to catch2-3.3.
Date: Sat, 17 Jun 2023 19:30:18 +0000
* gnu/packages/check.scm (catch2-3.1): Rename to catch2-3.3.
* gnu/packages/potassco.scm (clingo): Adjust accordingly.
---
 gnu/packages/check.scm    | 70 +++++----------------------------------
 gnu/packages/potassco.scm |  2 +-
 2 files changed, 10 insertions(+), 62 deletions(-)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 87728fefa3..512b2ac070 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -38,7 +38,7 @@
 ;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
 ;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte <at> inria.fr>
 ;;; Copyright © 2022 Maxime Devos <maximedevos <at> telenet.be>
-;;; Copyright © 2022 David Elsing <david.elsing <at> posteo.net>
+;;; Copyright © 2022, 2023 David Elsing <david.elsing <at> posteo.net>
 ;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus <at> gmail.com>
 ;;; Copyright © 2022 jgart <jgart <at> dismail.de>
 ;;; Copyright © 2023 Luis Felipe López Acevedo <luis.felipe.la <at> protonmail.com>
@@ -596,10 +596,10 @@ (define-public cbehave
 pattern.")
       (license license:apsl2))))
 
-(define-public catch2-3.1
+(define-public catch2-3.3
   (package
     (name "catch2")
-    (version "3.1.1")
+    (version "3.3.2")
     (home-page "https://github.com/catchorg/Catch2")
     (source (origin
               (method git-fetch)
@@ -609,66 +609,14 @@ (define-public catch2-3.1
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qnr5b3zq8brh43f924rgnw5gmmjf9ax7kbq2crz1mlwgmdymxlp"))))
-    (outputs (list "out" "static"))
-    (build-system meson-build-system)
+                "0m6i3lr0qk303ashjpz5vpwmxf76n5d6s8jq6r6kcy6gph525zmp"))))
+    (build-system cmake-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$"))))))))
+      #:configure-flags
+      #~(list "-DCATCH_DEVELOPMENT_BUILD=ON"
+              "-DENABLE_WERROR=OFF"
+              "-DBUILD_SHARED_LIBS=ON")))
     (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
diff --git a/gnu/packages/potassco.scm b/gnu/packages/potassco.scm
index 03d243cdc7..cf385a65d5 100644
--- a/gnu/packages/potassco.scm
+++ b/gnu/packages/potassco.scm
@@ -198,7 +198,7 @@ (define-public clingo
                                 "unpool-ast-v2" "parse_term"
                                 "propagator" "propgator-sequence-mining"
                                 "symbol" "visitor"))))))))))
-    (inputs (list catch2-3.1 clasp libpotassco))
+    (inputs (list catch2-3.3 clasp libpotassco))
     (native-inputs (list pkg-config))
     (home-page "https://potassco.org/")
     (synopsis "Grounder and solver for logic programs")
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sat, 17 Jun 2023 19:32:02 GMT) Full text and rfc822 format available.

Message #11 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH 2/2] gnu: Add catch2-static-3.3.
Date: Sat, 17 Jun 2023 19:30:19 +0000
* gnu/packages/check.scm (catch2-static-3.3): New variable.
---
 gnu/packages/check.scm | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 512b2ac070..7986f58cc1 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -623,6 +623,17 @@ (define-public catch2-3.3
 a multi-paradigm automated test framework for C++ and Objective-C.")
     (license license:boost1.0)))
 
+(define-public catch2-static-3.3
+  (let ((base catch2-3.3))
+    (package
+      (inherit base)
+      (name "catch2-static")
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:configure-flags flags)
+          #~(cons* "-DBUILD_SHARED_LIBS=OFF"
+                   (delete "-DBUILD_SHARED_LIBS=ON" #$flags))))))))
+
 (define-public cmdtest
   (package
     (name "cmdtest")
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 18 Jun 2023 06:56:02 GMT) Full text and rfc822 format available.

Message #14 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: David Elsing <david.elsing <at> posteo.net>, 64137 <at> debbugs.gnu.org
Subject: Re: [PATCH 0/2] Build catch2 <at> 3 with CMake and update to 3.3.2
Date: Sun, 18 Jun 2023 08:55:06 +0200
Am Samstag, dem 17.06.2023 um 19:27 +0000 schrieb David Elsing:
> Currently, the catch2-3.1 package is built with Meson. I think this
> was done to build both static and shared libraries together, which is
> not supported by CMake. Unfortunately, several CMake files (in
> lib/cmake/Catch2) are not installed and to install them, CMake would
> be necessary as build dependency anyway. Only the clingo package
> depends on this package and the static output is not used in another
> package.
> 
> Would it be acceptable to build it with CMake instead, like the
> catch2 package (for version 2)?  I also included a separate package
> for the static version.  Of course, the documentation and headers are
> then installed in both packages.
If you actually get clingo to build, that'd be one thing, but there
shouldn't be any issue getting our catch2 to work in CMake-based
projects to begin with.  After all, we do provide a catch2-config that
simply invokes pkg-config.  I'd hazard a guess that whatever project
you're trying to build pokes at internals it's not really supposed to
see.

As for the upgrade to 3.3.2, I'd take that in solitude if clingo still
builds with it.  If not, you'd have to make it an extra version.

Cheers




Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 18 Jun 2023 20:48:02 GMT) Full text and rfc822 format available.

Message #17 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>, 64137 <at> debbugs.gnu.org
Subject: Re: [PATCH 0/2] Build catch2 <at> 3 with CMake and update to 3.3.2
Date: Sun, 18 Jun 2023 20:47:09 +0000
Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes:

> If you actually get clingo to build, that'd be one thing, but there
> shouldn't be any issue getting our catch2 to work in CMake-based
> projects to begin with.  After all, we do provide a catch2-config that
> simply invokes pkg-config.  I'd hazard a guess that whatever project
> you're trying to build pokes at internals it's not really supposed to
> see.
I see, what is missing are the "extras" like catch_discover_tests, but
it seems they can just be copied to lib/cmake/Catch2.
>
> As for the upgrade to 3.3.2, I'd take that in solitude if clingo still
> builds with it.  If not, you'd have to make it an extra version.
To build clingo with 3.3.2, the find_package(Catch2 3.1 ...) command
just needed to be adjusted, but I went ahead and unbundled the remaining
dependencies as well. Should this be a separate issue?
For catch2, it seems simpler to me to build it with CMake, as I don't
see the use case for the static library (as a second output). If you
prefer, I can change it back to Meson though and just copy the files
from the extras directory as well (provided it works).




Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 18 Jun 2023 20:54:01 GMT) Full text and rfc822 format available.

Message #20 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v2 1/8] gnu: Add mpark-variant.
Date: Sun, 18 Jun 2023 20:53:00 +0000
* gnu/packages/cpp.scm (mpark-variant): New variable.
---
 gnu/packages/cpp.scm | 37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 39a34c20dd..5a6298fc4d 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -29,7 +29,7 @@
 ;;; Copyright © 2022 muradm <mail <at> muradm.net>
 ;;; Copyright © 2022 Attila Lendvai <attila <at> lendvai.name>
 ;;; Copyright © 2022 Arun Isaac <arunisaac <at> systemreboot.net>
-;;; Copyright © 2022 David Elsing <david.elsing <at> posteo.net>
+;;; Copyright © 2022, 2023 David Elsing <david.elsing <at> posteo.net>
 ;;; Copyright © 2022, 2023 Zheng Junjie <873216071 <at> qq.com>
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
 ;;; Copyright © 2023 Sughosha <Sughosha <at> proton.me>
@@ -2553,3 +2553,38 @@ (define-public ftxui
 @item No dependencies.
 @end itemize")
     (license license:expat)))
+
+(define-public mpark-variant
+  (package
+    (name "mpark-variant")
+    (version "1.4.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/mpark/variant")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "0gz8d5qprlfqb42cfyyc4nbwhgarhw027a9nr52h3gbdn560j0j4"))
+              (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags #~(list "-DMPARK_VARIANT_INCLUDE_TESTS=mpark")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'find-googletest
+            (lambda _
+              (substitute* "test/CMakeLists.txt"
+                (("add_subdirectory.*3rdparty/googletest.*\n")
+                 "find_package(GTest REQUIRED)\n")
+                ((".*3rdparty/googletest.*\n") "")
+                ((".*config_compiler_and_linker.*\n") "")
+                (("gtest_main") "gtest gtest_main")))))))
+    (native-inputs (list googletest))
+    (home-page "https://github.com/mpark/variant")
+    (synopsis "Implementation of the C++17 std::variant for C++11/14/17")
+    (description
+     "MPark.Variant provides the C++17 std::variant for C++11/14/17.  It is
+based on the implementation of std::variant in libc++.")
+    (license license:boost1.0)))
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 18 Jun 2023 20:54:02 GMT) Full text and rfc822 format available.

Message #23 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v2 2/8] gnu: Add tsl-hopscotch-map.
Date: Sun, 18 Jun 2023 20:53:01 +0000
* gnu/packages/cpp.scm (tsl-hopscotch-map): New variable.
---
 gnu/packages/cpp.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 5a6298fc4d..7878aa2a6d 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -2588,3 +2588,38 @@ (define-public mpark-variant
      "MPark.Variant provides the C++17 std::variant for C++11/14/17.  It is
 based on the implementation of std::variant in libc++.")
     (license license:boost1.0)))
+
+(define-public tsl-hopscotch-map
+  (package
+    (name "tsl-hopscotch-map")
+    (version "2.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Tessil/hopscotch-map")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "012pw37w000pdxdvps0wsqrw6597cm6i6kr5rpl303qmiwqicb2p"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-cmake-test
+            (lambda _
+              (let ((file (open-file "CMakeLists.txt" "a")))
+                (display "\nenable_testing()\nadd_subdirectory(tests)" file)
+                (close-port file))
+              (substitute* "tests/CMakeLists.txt"
+                (("set\\(Boost_USE_STATIC_LIBS.*") "")
+                (("add_subdirectory\\(\\.\\..*")
+                 "add_test(tsl_hopscotch_map_tests tsl_hopscotch_map_tests)\n")))))))
+    (native-inputs (list boost))
+    (home-page "https://github.com/Tessil/hopscotch-map")
+    (synopsis "C++ implementation of a hash map and hash set using hopscotch hashing")
+    (description "This package provides a C++ implementation of a hash map and
+a hash set using open-addressing and hopscotch hashing to resolve
+collisions.")
+    (license license:expat)))
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 18 Jun 2023 20:54:02 GMT) Full text and rfc822 format available.

Message #26 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v2 3/8] gnu: Add tsl-sparse-map.
Date: Sun, 18 Jun 2023 20:53:02 +0000
* gnu/packages/cpp.scm (tsl-sparse-map): New variable.
---
 gnu/packages/cpp.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 7878aa2a6d..6f558d1f5b 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -2623,3 +2623,37 @@ (define-public tsl-hopscotch-map
 a hash set using open-addressing and hopscotch hashing to resolve
 collisions.")
     (license license:expat)))
+
+(define-public tsl-sparse-map
+  (package
+    (name "tsl-sparse-map")
+    (version "0.6.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Tessil/sparse-map")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "0rb7w0hzsj4qbm0dff1niaf75aag9lj0xqhgb3vg5h9hfic62ic2"))
+              (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-cmake-test
+            (lambda _
+              (let ((file (open-file "CMakeLists.txt" "a")))
+                (display "\nenable_testing()\nadd_subdirectory(tests)" file)
+                (close-port file))
+              (substitute* "tests/CMakeLists.txt"
+                (("set\\(Boost_USE_STATIC_LIBS.*") "")
+                (("add_subdirectory\\(\\.\\..*")
+                 "add_test(tsl_sparse_map_tests tsl_sparse_map_tests)\n")))))))
+    (native-inputs (list boost))
+    (home-page "https://github.com/Tessil/sparse-map")
+    (synopsis "C++ implementation of a memory efficient hash map and hash set")
+    (description "This package provides a C++ implementation of a hash map and
+a hash set with focus on memory efficiency.")
+    (license license:expat)))
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 18 Jun 2023 20:54:02 GMT) Full text and rfc822 format available.

Message #29 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v2 4/8] gnu: Add tsl-ordered-map.
Date: Sun, 18 Jun 2023 20:53:03 +0000
* gnu/packages/cpp.scm (tsl-ordered-map): New variable.
---
 gnu/packages/cpp.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 6f558d1f5b..f1d7e89537 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -2657,3 +2657,37 @@ (define-public tsl-sparse-map
     (description "This package provides a C++ implementation of a hash map and
 a hash set with focus on memory efficiency.")
     (license license:expat)))
+
+(define-public tsl-ordered-map
+  (package
+    (name "tsl-ordered-map")
+    (version "1.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Tessil/ordered-map")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0bz5zgabalb7z0j9scng4zmi95hy7iasry5gz15x6y6dsdz0qf3j"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-cmake-test
+            (lambda _
+              (let ((file (open-file "CMakeLists.txt" "a")))
+                (display "\nenable_testing()\nadd_subdirectory(tests)" file)
+                (close-port file))
+              (substitute* "tests/CMakeLists.txt"
+                (("set\\(Boost_USE_STATIC_LIBS.*") "")
+                (("add_subdirectory\\(\\.\\..*")
+                 "add_test(tsl_ordered_map_tests tsl_ordered_map_tests)\n")))))))
+    (native-inputs (list boost))
+    (home-page "https://github.com/Tessil/ordered-map")
+    (synopsis "C++ hash map and hash set which preserve the order of insertion")
+    (description "This package provides a C++ implementation of a hash map and
+a hash set which preserve the order of insertion.")
+    (license license:expat)))
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 18 Jun 2023 20:54:03 GMT) Full text and rfc822 format available.

Message #32 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v2 5/8] gnu: Add tl-optional.
Date: Sun, 18 Jun 2023 20:53:04 +0000
* gnu/packages/cpp.scm (tl-optional): New variable.
---
 gnu/packages/cpp.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index f1d7e89537..2fe7f477ce 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -2691,3 +2691,35 @@ (define-public tsl-ordered-map
     (description "This package provides a C++ implementation of a hash map and
 a hash set which preserve the order of insertion.")
     (license license:expat)))
+
+(define-public tl-optional
+  (package
+    (name "tl-optional")
+    (version "1.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/TartanLlama/optional")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0qkjplmhilbi1iqxx3pz0grcx5355ymk6wwd4h4309mk156xgx2q"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-cmake-test
+            (lambda _
+              (substitute* "CMakeLists.txt"
+                (("FetchContent_Declare.*") "")
+                ((".*http.*catchorg/Catch2.*") "")
+                (("FetchContent_MakeAvailable\\(Catch2\\)")
+                 "find_package(Catch2 REQUIRED)")))))))
+    (native-inputs (list catch2))
+    (home-page "https://github.com/TartanLlama/optional")
+    (synopsis "C++11/14/17 implementation of std::optional with extensions")
+    (description "tl-optional is a single-header implementation of
+std::optional with functional-style extensions and support for references.")
+    (license license:cc0)))
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 18 Jun 2023 20:54:03 GMT) Full text and rfc822 format available.

Message #35 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v2 6/8] gnu: clingo: Unbundle dependencies.
Date: Sun, 18 Jun 2023 20:53:05 +0000
* gnu/packages/potassco.scm: (clingo)
[arguments]<#:phases>: Patch CMakeLists.txt files to use external dependencies.
[native-inputs]: Add mpark-variant, tl-optional, tsl-hopscotch-map,
tsl-ordered-map and tsl-sparse-map.
---
 gnu/packages/potassco.scm | 24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/potassco.scm b/gnu/packages/potassco.scm
index 03d243cdc7..b8e51e7d47 100644
--- a/gnu/packages/potassco.scm
+++ b/gnu/packages/potassco.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2022, 2023 Liliana Marie Prikler <liliana.prikler <at> gmail.com>
 ;;; Copyright © 2023 Simon Tournier <zimon.toutoune <at> gmail.com>
+;;; Copyright © 2023 David Elsing <david.elsing <at> posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +32,7 @@ (define-module (gnu packages potassco)
   #:use-module (guix build-system python)
   #:use-module (guix build-system pyproject)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages pkg-config)
@@ -153,8 +155,7 @@ (define-public clingo
               (snippet
                #~(begin
                    (delete-file-recursively "clasp")
-                   ;; TODO: Unvendor other third-party stuff
-                   (delete-file-recursively "third_party/catch")))
+                   (delete-file-recursively "third_party")))
               (sha256
                (base32
                 "19s59ndcm2yj0kxlikfxnx2bmp6b7n31wq1zvwc7hyk37rqarwys"))))
@@ -173,12 +174,22 @@ (define-public clingo
             (lambda _
               (substitute* "CMakeLists.txt"
                 (("add_subdirectory\\(clasp\\)")
-                 "find_package(clasp REQUIRED)"))
+                 "find_package(clasp REQUIRED)")
+                (("add_subdirectory\\(third_party\\)")
+                 (string-append
+                  "find_package(tsl-hopscotch-map)\n"
+                  "find_package(tl-optional)\n"
+                  "find_package(mpark_variant)\n"
+                  "find_package(tsl-sparse-map)\n"
+                  "find_package(tsl-ordered-map)\n"
+                  "find_package(Catch2 3 REQUIRED)")))
               (substitute* "libclingo/CMakeLists.txt"
                 (("\"cmake/Clingo\"") "\"cmake/clingo\"")
                 (("ClingoConfig\\.cmake") "clingo-config.cmake")
                 (("ClingoConfigVersion\\.cmake")
                  "clingo-config-version.cmake"))
+              (substitute* "libgringo/CMakeLists.txt"
+                (("mpark::variant") "mpark_variant"))
               (substitute* "cmake/ClingoConfig.cmake.in"
                 (("find_package\\(Clasp") "find_package(clasp"))
               (rename-file "cmake/ClingoConfig.cmake.in"
@@ -199,7 +210,12 @@ (define-public clingo
                                 "propagator" "propgator-sequence-mining"
                                 "symbol" "visitor"))))))))))
     (inputs (list catch2-3.1 clasp libpotassco))
-    (native-inputs (list pkg-config))
+    (native-inputs (list mpark-variant
+                         pkg-config
+                         tl-optional
+                         tsl-hopscotch-map
+                         tsl-ordered-map
+                         tsl-sparse-map))
     (home-page "https://potassco.org/")
     (synopsis "Grounder and solver for logic programs")
     (description "Clingo computes answer sets for a given logic program.")
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 18 Jun 2023 20:54:03 GMT) Full text and rfc822 format available.

Message #38 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v2 7/8] gnu: catch2-3.1: Rename to catch2-3.3.
Date: Sun, 18 Jun 2023 20:53:06 +0000
* gnu/packages/check.scm (catch2-3.1): Rename to catch2-3.3.
* gnu/packages/potassco.scm (clingo): Adjust accordingly.
---
 gnu/packages/check.scm    | 70 +++++----------------------------------
 gnu/packages/potassco.scm |  2 +-
 2 files changed, 10 insertions(+), 62 deletions(-)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 87728fefa3..512b2ac070 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -38,7 +38,7 @@
 ;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
 ;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte <at> inria.fr>
 ;;; Copyright © 2022 Maxime Devos <maximedevos <at> telenet.be>
-;;; Copyright © 2022 David Elsing <david.elsing <at> posteo.net>
+;;; Copyright © 2022, 2023 David Elsing <david.elsing <at> posteo.net>
 ;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus <at> gmail.com>
 ;;; Copyright © 2022 jgart <jgart <at> dismail.de>
 ;;; Copyright © 2023 Luis Felipe López Acevedo <luis.felipe.la <at> protonmail.com>
@@ -596,10 +596,10 @@ (define-public cbehave
 pattern.")
       (license license:apsl2))))
 
-(define-public catch2-3.1
+(define-public catch2-3.3
   (package
     (name "catch2")
-    (version "3.1.1")
+    (version "3.3.2")
     (home-page "https://github.com/catchorg/Catch2")
     (source (origin
               (method git-fetch)
@@ -609,66 +609,14 @@ (define-public catch2-3.1
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qnr5b3zq8brh43f924rgnw5gmmjf9ax7kbq2crz1mlwgmdymxlp"))))
-    (outputs (list "out" "static"))
-    (build-system meson-build-system)
+                "0m6i3lr0qk303ashjpz5vpwmxf76n5d6s8jq6r6kcy6gph525zmp"))))
+    (build-system cmake-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$"))))))))
+      #:configure-flags
+      #~(list "-DCATCH_DEVELOPMENT_BUILD=ON"
+              "-DENABLE_WERROR=OFF"
+              "-DBUILD_SHARED_LIBS=ON")))
     (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
diff --git a/gnu/packages/potassco.scm b/gnu/packages/potassco.scm
index b8e51e7d47..4e7d715e39 100644
--- a/gnu/packages/potassco.scm
+++ b/gnu/packages/potassco.scm
@@ -209,7 +209,7 @@ (define-public clingo
                                 "unpool-ast-v2" "parse_term"
                                 "propagator" "propgator-sequence-mining"
                                 "symbol" "visitor"))))))))))
-    (inputs (list catch2-3.1 clasp libpotassco))
+    (inputs (list catch2-3.3 clasp libpotassco))
     (native-inputs (list mpark-variant
                          pkg-config
                          tl-optional
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 18 Jun 2023 20:54:04 GMT) Full text and rfc822 format available.

Message #41 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v2 8/8] gnu: Add catch2-static-3.3.
Date: Sun, 18 Jun 2023 20:53:07 +0000
* gnu/packages/check.scm (catch2-static-3.3): New variable.
---
 gnu/packages/check.scm | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 512b2ac070..7986f58cc1 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -623,6 +623,17 @@ (define-public catch2-3.3
 a multi-paradigm automated test framework for C++ and Objective-C.")
     (license license:boost1.0)))
 
+(define-public catch2-static-3.3
+  (let ((base catch2-3.3))
+    (package
+      (inherit base)
+      (name "catch2-static")
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:configure-flags flags)
+          #~(cons* "-DBUILD_SHARED_LIBS=OFF"
+                   (delete "-DBUILD_SHARED_LIBS=ON" #$flags))))))))
+
 (define-public cmdtest
   (package
     (name "cmdtest")
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Thu, 22 Jun 2023 04:17:01 GMT) Full text and rfc822 format available.

Message #44 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: David Elsing <david.elsing <at> posteo.net>, 64137 <at> debbugs.gnu.org
Subject: Re: [PATCH v2 1/8] gnu: Add mpark-variant.
Date: Thu, 22 Jun 2023 06:16:42 +0200
Am Sonntag, dem 18.06.2023 um 20:53 +0000 schrieb David Elsing:
> * gnu/packages/cpp.scm (mpark-variant): New variable.
> ---
>  gnu/packages/cpp.scm | 37 ++++++++++++++++++++++++++++++++++++-
>  1 file changed, 36 insertions(+), 1 deletion(-)
> 
> diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
> index 39a34c20dd..5a6298fc4d 100644
> --- a/gnu/packages/cpp.scm
> +++ b/gnu/packages/cpp.scm
> @@ -29,7 +29,7 @@
>  ;;; Copyright © 2022 muradm <mail <at> muradm.net>
>  ;;; Copyright © 2022 Attila Lendvai <attila <at> lendvai.name>
>  ;;; Copyright © 2022 Arun Isaac <arunisaac <at> systemreboot.net>
> -;;; Copyright © 2022 David Elsing <david.elsing <at> posteo.net>
> +;;; Copyright © 2022, 2023 David Elsing <david.elsing <at> posteo.net>
>  ;;; Copyright © 2022, 2023 Zheng Junjie <873216071 <at> qq.com>
>  ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
>  ;;; Copyright © 2023 Sughosha <Sughosha <at> proton.me>
> @@ -2553,3 +2553,38 @@ (define-public ftxui
>  @item No dependencies.
>  @end itemize")
>      (license license:expat)))
> +
> +(define-public mpark-variant
> +  (package
> +    (name "mpark-variant")
> +    (version "1.4.0")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/mpark/variant")
> +                    (commit (string-append "v" version))))
> +              (sha256
> +               (base32
> +               
> "0gz8d5qprlfqb42cfyyc4nbwhgarhw027a9nr52h3gbdn560j0j4"))
> +              (file-name (git-file-name name version))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     (list
> +      #:configure-flags #~(list "-
> DMPARK_VARIANT_INCLUDE_TESTS=mpark")
> +      #:phases
> +      #~(modify-phases %standard-phases
> +          (add-after 'unpack 'find-googletest
> +            (lambda _
> +              (substitute* "test/CMakeLists.txt"
> +                (("add_subdirectory.*3rdparty/googletest.*\n")
> +                 "find_package(GTest REQUIRED)\n")
> +                ((".*3rdparty/googletest.*\n") "")
> +                ((".*config_compiler_and_linker.*\n") "")
> +                (("gtest_main") "gtest gtest_main")))))))
> +    (native-inputs (list googletest))
> +    (home-page "https://github.com/mpark/variant")
> +    (synopsis "Implementation of the C++17 std::variant for
> C++11/14/17")
Could probably be shortened to std::variant for C++11/14[/17]
> +    (description
> +     "MPark.Variant provides the C++17 std::variant for
> C++11/14/17.  It is
> +based on the implementation of std::variant in libc++.")
> +    (license license:boost1.0)))

Otherwise LGTM.

Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Thu, 22 Jun 2023 04:19:02 GMT) Full text and rfc822 format available.

Message #47 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: David Elsing <david.elsing <at> posteo.net>, 64137 <at> debbugs.gnu.org
Subject: Re: [PATCH v2 2/8] gnu: Add tsl-hopscotch-map.
Date: Thu, 22 Jun 2023 06:18:20 +0200
Am Sonntag, dem 18.06.2023 um 20:53 +0000 schrieb David Elsing:
> * gnu/packages/cpp.scm (tsl-hopscotch-map): New variable.
> ---
>  gnu/packages/cpp.scm | 35 +++++++++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
> 
> diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
> index 5a6298fc4d..7878aa2a6d 100644
> --- a/gnu/packages/cpp.scm
> +++ b/gnu/packages/cpp.scm
> @@ -2588,3 +2588,38 @@ (define-public mpark-variant
>       "MPark.Variant provides the C++17 std::variant for
> C++11/14/17.  It is
>  based on the implementation of std::variant in libc++.")
>      (license license:boost1.0)))
> +
> +(define-public tsl-hopscotch-map
> +  (package
> +    (name "tsl-hopscotch-map")
> +    (version "2.3.0")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/Tessil/hopscotch-map")
> +                    (commit (string-append "v" version))))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +               
> "012pw37w000pdxdvps0wsqrw6597cm6i6kr5rpl303qmiwqicb2p"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     (list
> +      #:phases
> +      #~(modify-phases %standard-phases
> +          (add-after 'unpack 'patch-cmake-test
> +            (lambda _
> +              (let ((file (open-file "CMakeLists.txt" "a")))
> +                (display
> "\nenable_testing()\nadd_subdirectory(tests)" file)
> +                (close-port file))
> +              (substitute* "tests/CMakeLists.txt"
> +                (("set\\(Boost_USE_STATIC_LIBS.*") "")
> +                (("add_subdirectory\\(\\.\\..*")
> +                 "add_test(tsl_hopscotch_map_tests
> tsl_hopscotch_map_tests)\n")))))))
> +    (native-inputs (list boost))
> +    (home-page "https://github.com/Tessil/hopscotch-map")
> +    (synopsis "C++ implementation of a hash map and hash set using
> hopscotch hashing")
Should be shortened to fit on a single line.
> +    (description "This package provides a C++ implementation of a
> hash map and
> +a hash set using open-addressing and hopscotch hashing to resolve
> +collisions.")
The description ought to provide a little more information than the
synopsis :)
Same basically holds for packages 3..5, so I won't repeat myself.

Cheers

Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Thu, 22 Jun 2023 04:20:01 GMT) Full text and rfc822 format available.

Message #50 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: David Elsing <david.elsing <at> posteo.net>, 64137 <at> debbugs.gnu.org
Subject: Re: [PATCH v2 6/8] gnu: clingo: Unbundle dependencies.
Date: Thu, 22 Jun 2023 06:19:33 +0200
Am Sonntag, dem 18.06.2023 um 20:53 +0000 schrieb David Elsing:
> * gnu/packages/potassco.scm: (clingo)
> [arguments]<#:phases>: Patch CMakeLists.txt files to use external
> dependencies.
You can shorten this to (clingo)[#:phases] to not have the weird line
break.
> [native-inputs]: Add mpark-variant, tl-optional, tsl-hopscotch-map,
> tsl-ordered-map and tsl-sparse-map.
LGTM.




Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Thu, 22 Jun 2023 04:21:01 GMT) Full text and rfc822 format available.

Message #53 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: David Elsing <david.elsing <at> posteo.net>, 64137 <at> debbugs.gnu.org
Subject: Re: [PATCH v2 7/8] gnu: catch2-3.1: Rename to catch2-3.3.
Date: Thu, 22 Jun 2023 06:20:11 +0200
Am Sonntag, dem 18.06.2023 um 20:53 +0000 schrieb David Elsing:
> * gnu/packages/check.scm (catch2-3.1): Rename to catch2-3.3.
> * gnu/packages/potassco.scm (clingo): Adjust accordingly.
This ChangeLog does not nearly explain the stuff that was changed in
the patch.




Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Thu, 22 Jun 2023 04:25:02 GMT) Full text and rfc822 format available.

Message #56 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: David Elsing <david.elsing <at> posteo.net>, 64137 <at> debbugs.gnu.org
Subject: Re: [PATCH v2 8/8] gnu: Add catch2-static-3.3.
Date: Thu, 22 Jun 2023 06:24:08 +0200
Am Sonntag, dem 18.06.2023 um 20:53 +0000 schrieb David Elsing:
> * gnu/packages/check.scm (catch2-static-3.3): New variable.
Having an extra package for static catch seems overkill to me.  Since
afaik there are no actual users, you can simply omit this patch, but if
you do have a use case for static catch, I highly recommend going with
the current meson approach, as CMake seems unable to do both_libraries.

Cheers




Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 25 Jun 2023 10:02:02 GMT) Full text and rfc822 format available.

Message #59 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>, 64137 <at> debbugs.gnu.org
Subject: Re: [PATCH 0/2] Build catch2 <at> 3 with CMake and update to 3.3.2
Date: Sun, 25 Jun 2023 10:01:42 +0000
Thanks for your comments, here are the updated patches. I removed the
cmake-static package as I also don't have any need for it.




Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 25 Jun 2023 10:05:02 GMT) Full text and rfc822 format available.

Message #62 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v3 1/7] gnu: Add mpark-variant.
Date: Sun, 25 Jun 2023 10:03:53 +0000
* gnu/packages/cpp.scm (mpark-variant): New variable.
---
 gnu/packages/cpp.scm | 37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 39a34c20dd..8139a9d083 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -29,7 +29,7 @@
 ;;; Copyright © 2022 muradm <mail <at> muradm.net>
 ;;; Copyright © 2022 Attila Lendvai <attila <at> lendvai.name>
 ;;; Copyright © 2022 Arun Isaac <arunisaac <at> systemreboot.net>
-;;; Copyright © 2022 David Elsing <david.elsing <at> posteo.net>
+;;; Copyright © 2022, 2023 David Elsing <david.elsing <at> posteo.net>
 ;;; Copyright © 2022, 2023 Zheng Junjie <873216071 <at> qq.com>
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
 ;;; Copyright © 2023 Sughosha <Sughosha <at> proton.me>
@@ -2553,3 +2553,38 @@ (define-public ftxui
 @item No dependencies.
 @end itemize")
     (license license:expat)))
+
+(define-public mpark-variant
+  (package
+    (name "mpark-variant")
+    (version "1.4.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/mpark/variant")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "0gz8d5qprlfqb42cfyyc4nbwhgarhw027a9nr52h3gbdn560j0j4"))
+              (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags #~(list "-DMPARK_VARIANT_INCLUDE_TESTS=mpark")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'find-googletest
+            (lambda _
+              (substitute* "test/CMakeLists.txt"
+                (("add_subdirectory.*3rdparty/googletest.*\n")
+                 "find_package(GTest REQUIRED)\n")
+                ((".*3rdparty/googletest.*\n") "")
+                ((".*config_compiler_and_linker.*\n") "")
+                (("gtest_main") "gtest gtest_main")))))))
+    (native-inputs (list googletest))
+    (home-page "https://github.com/mpark/variant")
+    (synopsis "Implementation of std::variant for C++11/14/17")
+    (description
+     "MPark.Variant provides the C++17 std::variant for C++11/14/17.  It is
+based on the implementation of std::variant in libc++.")
+    (license license:boost1.0)))
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 25 Jun 2023 10:05:02 GMT) Full text and rfc822 format available.

Message #65 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v3 2/7] gnu: Add tsl-hopscotch-map.
Date: Sun, 25 Jun 2023 10:03:54 +0000
* gnu/packages/cpp.scm (tsl-hopscotch-map): New variable.
---
 gnu/packages/cpp.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 8139a9d083..afa0878bb7 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -2588,3 +2588,39 @@ (define-public mpark-variant
      "MPark.Variant provides the C++17 std::variant for C++11/14/17.  It is
 based on the implementation of std::variant in libc++.")
     (license license:boost1.0)))
+
+(define-public tsl-hopscotch-map
+  (package
+    (name "tsl-hopscotch-map")
+    (version "2.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Tessil/hopscotch-map")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "012pw37w000pdxdvps0wsqrw6597cm6i6kr5rpl303qmiwqicb2p"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-cmake-test
+            (lambda _
+              (let ((file (open-file "CMakeLists.txt" "a")))
+                (display "\nenable_testing()\nadd_subdirectory(tests)" file)
+                (close-port file))
+              (substitute* "tests/CMakeLists.txt"
+                (("set\\(Boost_USE_STATIC_LIBS.*") "")
+                (("add_subdirectory\\(\\.\\..*")
+                 "add_test(tsl_hopscotch_map_tests tsl_hopscotch_map_tests)\n")))))))
+    (native-inputs (list boost))
+    (home-page "https://github.com/Tessil/hopscotch-map")
+    (synopsis "Hash maps and hash sets using hopscotch hashing in C++")
+    (description "This package provides a C++ implementation of several hash
+map and a hash set variants using open addressing and hopscotch hashing to
+resolve collisions.  It is intended to be fast and provides additional
+features, such as heterogeneous lookups and different growth policies.")
+    (license license:expat)))
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 25 Jun 2023 10:05:03 GMT) Full text and rfc822 format available.

Message #68 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v3 3/7] gnu: Add tsl-sparse-map.
Date: Sun, 25 Jun 2023 10:03:55 +0000
* gnu/packages/cpp.scm (tsl-sparse-map): New variable.
---
 gnu/packages/cpp.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index afa0878bb7..adf9e5b2f0 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -2624,3 +2624,39 @@ (define-public tsl-hopscotch-map
 resolve collisions.  It is intended to be fast and provides additional
 features, such as heterogeneous lookups and different growth policies.")
     (license license:expat)))
+
+(define-public tsl-sparse-map
+  (package
+    (name "tsl-sparse-map")
+    (version "0.6.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Tessil/sparse-map")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "0rb7w0hzsj4qbm0dff1niaf75aag9lj0xqhgb3vg5h9hfic62ic2"))
+              (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-cmake-test
+            (lambda _
+              (let ((file (open-file "CMakeLists.txt" "a")))
+                (display "\nenable_testing()\nadd_subdirectory(tests)" file)
+                (close-port file))
+              (substitute* "tests/CMakeLists.txt"
+                (("set\\(Boost_USE_STATIC_LIBS.*") "")
+                (("add_subdirectory\\(\\.\\..*")
+                 "add_test(tsl_sparse_map_tests tsl_sparse_map_tests)\n")))))))
+    (native-inputs (list boost))
+    (home-page "https://github.com/Tessil/sparse-map")
+    (synopsis "Memory efficient hash map and hash set in C++")
+    (description "This package provides a C++ implementation of a hash map and
+a hash set with open addressing and sparse quadratic probing.  It is intended
+to be memory efficient and provides additional features, such as heterogeneous
+lookups and different growth policies.")
+    (license license:expat)))
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 25 Jun 2023 10:05:03 GMT) Full text and rfc822 format available.

Message #71 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v3 4/7] gnu: Add tsl-ordered-map.
Date: Sun, 25 Jun 2023 10:03:56 +0000
* gnu/packages/cpp.scm (tsl-ordered-map): New variable.
---
 gnu/packages/cpp.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index adf9e5b2f0..efce934e6d 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -2660,3 +2660,39 @@ (define-public tsl-sparse-map
 to be memory efficient and provides additional features, such as heterogeneous
 lookups and different growth policies.")
     (license license:expat)))
+
+(define-public tsl-ordered-map
+  (package
+    (name "tsl-ordered-map")
+    (version "1.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Tessil/ordered-map")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0bz5zgabalb7z0j9scng4zmi95hy7iasry5gz15x6y6dsdz0qf3j"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-cmake-test
+            (lambda _
+              (let ((file (open-file "CMakeLists.txt" "a")))
+                (display "\nenable_testing()\nadd_subdirectory(tests)" file)
+                (close-port file))
+              (substitute* "tests/CMakeLists.txt"
+                (("set\\(Boost_USE_STATIC_LIBS.*") "")
+                (("add_subdirectory\\(\\.\\..*")
+                 "add_test(tsl_ordered_map_tests tsl_ordered_map_tests)\n")))))))
+    (native-inputs (list boost))
+    (home-page "https://github.com/Tessil/ordered-map")
+    (synopsis "Hash map and hash set which preserve the order of insertion in C++")
+    (description "This package provides a C++ implementation of a hash map and
+a hash set which preserve the order of insertion.  It is intended for
+efficient ordered insertions and lookup, while sacrifing performance for
+ordered erase operations.")
+    (license license:expat)))
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 25 Jun 2023 10:05:04 GMT) Full text and rfc822 format available.

Message #74 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v3 5/7] gnu: Add tl-optional.
Date: Sun, 25 Jun 2023 10:03:57 +0000
* gnu/packages/cpp.scm (tl-optional): New variable.
---
 gnu/packages/cpp.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index efce934e6d..7e89b9d80a 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -2696,3 +2696,36 @@ (define-public tsl-ordered-map
 efficient ordered insertions and lookup, while sacrifing performance for
 ordered erase operations.")
     (license license:expat)))
+
+(define-public tl-optional
+  (package
+    (name "tl-optional")
+    (version "1.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/TartanLlama/optional")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0qkjplmhilbi1iqxx3pz0grcx5355ymk6wwd4h4309mk156xgx2q"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-cmake-test
+            (lambda _
+              (substitute* "CMakeLists.txt"
+                (("FetchContent_Declare.*") "")
+                ((".*http.*catchorg/Catch2.*") "")
+                (("FetchContent_MakeAvailable\\(Catch2\\)")
+                 "find_package(Catch2 REQUIRED)")))))))
+    (native-inputs (list catch2))
+    (home-page "https://github.com/TartanLlama/optional")
+    (synopsis "Implementation of std::optional with extensions for C++11/14/17")
+    (description "tl-optional provides a single-header implementation of the
+C++17 std::optional for C++11/14/17.  It includes functional-style extensions
+and support for references.")
+    (license license:cc0)))
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 25 Jun 2023 10:05:04 GMT) Full text and rfc822 format available.

Message #77 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v3 6/7] gnu: clingo: Unbundle dependencies.
Date: Sun, 25 Jun 2023 10:03:58 +0000
* gnu/packages/potassco.scm: (clingo)[#:phases]: Patch CMakeLists.txt files to
use external dependencies.
[native-inputs]: Add mpark-variant, tl-optional, tsl-hopscotch-map,
tsl-ordered-map and tsl-sparse-map.
---
 gnu/packages/potassco.scm | 24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/potassco.scm b/gnu/packages/potassco.scm
index 03d243cdc7..b8e51e7d47 100644
--- a/gnu/packages/potassco.scm
+++ b/gnu/packages/potassco.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2022, 2023 Liliana Marie Prikler <liliana.prikler <at> gmail.com>
 ;;; Copyright © 2023 Simon Tournier <zimon.toutoune <at> gmail.com>
+;;; Copyright © 2023 David Elsing <david.elsing <at> posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +32,7 @@ (define-module (gnu packages potassco)
   #:use-module (guix build-system python)
   #:use-module (guix build-system pyproject)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages pkg-config)
@@ -153,8 +155,7 @@ (define-public clingo
               (snippet
                #~(begin
                    (delete-file-recursively "clasp")
-                   ;; TODO: Unvendor other third-party stuff
-                   (delete-file-recursively "third_party/catch")))
+                   (delete-file-recursively "third_party")))
               (sha256
                (base32
                 "19s59ndcm2yj0kxlikfxnx2bmp6b7n31wq1zvwc7hyk37rqarwys"))))
@@ -173,12 +174,22 @@ (define-public clingo
             (lambda _
               (substitute* "CMakeLists.txt"
                 (("add_subdirectory\\(clasp\\)")
-                 "find_package(clasp REQUIRED)"))
+                 "find_package(clasp REQUIRED)")
+                (("add_subdirectory\\(third_party\\)")
+                 (string-append
+                  "find_package(tsl-hopscotch-map)\n"
+                  "find_package(tl-optional)\n"
+                  "find_package(mpark_variant)\n"
+                  "find_package(tsl-sparse-map)\n"
+                  "find_package(tsl-ordered-map)\n"
+                  "find_package(Catch2 3 REQUIRED)")))
               (substitute* "libclingo/CMakeLists.txt"
                 (("\"cmake/Clingo\"") "\"cmake/clingo\"")
                 (("ClingoConfig\\.cmake") "clingo-config.cmake")
                 (("ClingoConfigVersion\\.cmake")
                  "clingo-config-version.cmake"))
+              (substitute* "libgringo/CMakeLists.txt"
+                (("mpark::variant") "mpark_variant"))
               (substitute* "cmake/ClingoConfig.cmake.in"
                 (("find_package\\(Clasp") "find_package(clasp"))
               (rename-file "cmake/ClingoConfig.cmake.in"
@@ -199,7 +210,12 @@ (define-public clingo
                                 "propagator" "propgator-sequence-mining"
                                 "symbol" "visitor"))))))))))
     (inputs (list catch2-3.1 clasp libpotassco))
-    (native-inputs (list pkg-config))
+    (native-inputs (list mpark-variant
+                         pkg-config
+                         tl-optional
+                         tsl-hopscotch-map
+                         tsl-ordered-map
+                         tsl-sparse-map))
     (home-page "https://potassco.org/")
     (synopsis "Grounder and solver for logic programs")
     (description "Clingo computes answer sets for a given logic program.")
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 25 Jun 2023 10:05:05 GMT) Full text and rfc822 format available.

Message #80 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v3 7/7] gnu: catch2-3.1: Rename to catch2-3.3 and update to
 3.3.2.
Date: Sun, 25 Jun 2023 10:03:59 +0000
* gnu/packages/check.scm (catch2-3.1): Rename to catch2-3.3 and update to 3.3.2.
[outputs] Only use 'out' output.
[build-system] Use cmake-build-system.
[arguments]: Remove special phases. Add CMake options to #:configure-flags.
* gnu/packages/potassco.scm (clingo): Adjust accordingly.
---
 gnu/packages/check.scm    | 70 +++++----------------------------------
 gnu/packages/potassco.scm |  2 +-
 2 files changed, 10 insertions(+), 62 deletions(-)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 87728fefa3..512b2ac070 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -38,7 +38,7 @@
 ;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
 ;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte <at> inria.fr>
 ;;; Copyright © 2022 Maxime Devos <maximedevos <at> telenet.be>
-;;; Copyright © 2022 David Elsing <david.elsing <at> posteo.net>
+;;; Copyright © 2022, 2023 David Elsing <david.elsing <at> posteo.net>
 ;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus <at> gmail.com>
 ;;; Copyright © 2022 jgart <jgart <at> dismail.de>
 ;;; Copyright © 2023 Luis Felipe López Acevedo <luis.felipe.la <at> protonmail.com>
@@ -596,10 +596,10 @@ (define-public cbehave
 pattern.")
       (license license:apsl2))))
 
-(define-public catch2-3.1
+(define-public catch2-3.3
   (package
     (name "catch2")
-    (version "3.1.1")
+    (version "3.3.2")
     (home-page "https://github.com/catchorg/Catch2")
     (source (origin
               (method git-fetch)
@@ -609,66 +609,14 @@ (define-public catch2-3.1
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qnr5b3zq8brh43f924rgnw5gmmjf9ax7kbq2crz1mlwgmdymxlp"))))
-    (outputs (list "out" "static"))
-    (build-system meson-build-system)
+                "0m6i3lr0qk303ashjpz5vpwmxf76n5d6s8jq6r6kcy6gph525zmp"))))
+    (build-system cmake-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$"))))))))
+      #:configure-flags
+      #~(list "-DCATCH_DEVELOPMENT_BUILD=ON"
+              "-DENABLE_WERROR=OFF"
+              "-DBUILD_SHARED_LIBS=ON")))
     (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
diff --git a/gnu/packages/potassco.scm b/gnu/packages/potassco.scm
index b8e51e7d47..4e7d715e39 100644
--- a/gnu/packages/potassco.scm
+++ b/gnu/packages/potassco.scm
@@ -209,7 +209,7 @@ (define-public clingo
                                 "unpool-ast-v2" "parse_term"
                                 "propagator" "propgator-sequence-mining"
                                 "symbol" "visitor"))))))))))
-    (inputs (list catch2-3.1 clasp libpotassco))
+    (inputs (list catch2-3.3 clasp libpotassco))
     (native-inputs (list mpark-variant
                          pkg-config
                          tl-optional
-- 
2.40.1





Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Sun, 25 Jun 2023 16:07:02 GMT) Full text and rfc822 format available.

Message #83 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: David Elsing <david.elsing <at> posteo.net>, 64137 <at> debbugs.gnu.org
Subject: Re: [PATCH 0/2] Build catch2 <at> 3 with CMake and update to 3.3.2
Date: Sun, 25 Jun 2023 18:06:44 +0200
Am Sonntag, dem 25.06.2023 um 10:01 +0000 schrieb David Elsing:
> Thanks for your comments, here are the updated patches. I removed the
> cmake-static package as I also don't have any need for it.
Thanks for the updates.  I do have some minor changes for the synopses
and descriptions, but nothing major.  I'll push them once CI lights
green or next weekend :)




Information forwarded to guix-patches <at> gnu.org:
bug#64137; Package guix-patches. (Wed, 28 Jun 2023 16:52:02 GMT) Full text and rfc822 format available.

Message #86 received at 64137 <at> debbugs.gnu.org (full text, mbox):

From: David Elsing <david.elsing <at> posteo.net>
To: 64137 <at> debbugs.gnu.org
Cc: David Elsing <david.elsing <at> posteo.net>
Subject: [PATCH v4] gnu: catch2-3.1: Rename to catch2-3.3 and update to 3.3.2.
Date: Wed, 28 Jun 2023 16:51:29 +0000
* gnu/packages/check.scm (catch2-3.1): Rename to catch2-3.3 and update to 3.3.2.
[outputs] Only use 'out' output.
[build-system] Use cmake-build-system.
[arguments]: Remove special phases. Add CMake options to #:configure-flags.
* gnu/packages/potassco.scm (clingo): Adjust accordingly.
---
 gnu/packages/check.scm    | 70 +++++----------------------------------
 gnu/packages/potassco.scm |  2 +-
 2 files changed, 10 insertions(+), 62 deletions(-)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 87728fefa3..0d4c117f6f 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -38,7 +38,7 @@
 ;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
 ;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte <at> inria.fr>
 ;;; Copyright © 2022 Maxime Devos <maximedevos <at> telenet.be>
-;;; Copyright © 2022 David Elsing <david.elsing <at> posteo.net>
+;;; Copyright © 2022, 2023 David Elsing <david.elsing <at> posteo.net>
 ;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus <at> gmail.com>
 ;;; Copyright © 2022 jgart <jgart <at> dismail.de>
 ;;; Copyright © 2023 Luis Felipe López Acevedo <luis.felipe.la <at> protonmail.com>
@@ -596,10 +596,10 @@ (define-public cbehave
 pattern.")
       (license license:apsl2))))
 
-(define-public catch2-3.1
+(define-public catch2-3.3
   (package
     (name "catch2")
-    (version "3.1.1")
+    (version "3.3.2")
     (home-page "https://github.com/catchorg/Catch2")
     (source (origin
               (method git-fetch)
@@ -609,66 +609,14 @@ (define-public catch2-3.1
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qnr5b3zq8brh43f924rgnw5gmmjf9ax7kbq2crz1mlwgmdymxlp"))))
-    (outputs (list "out" "static"))
-    (build-system meson-build-system)
+                "0m6i3lr0qk303ashjpz5vpwmxf76n5d6s8jq6r6kcy6gph525zmp"))))
+    (build-system cmake-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$"))))))))
+      #:configure-flags
+      #~(list "-DCATCH_DEVELOPMENT_BUILD=ON"
+              "-DCATCH_ENABLE_WERROR=OFF"
+              "-DBUILD_SHARED_LIBS=ON")))
     (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
diff --git a/gnu/packages/potassco.scm b/gnu/packages/potassco.scm
index b8e51e7d47..4e7d715e39 100644
--- a/gnu/packages/potassco.scm
+++ b/gnu/packages/potassco.scm
@@ -209,7 +209,7 @@ (define-public clingo
                                 "unpool-ast-v2" "parse_term"
                                 "propagator" "propgator-sequence-mining"
                                 "symbol" "visitor"))))))))))
-    (inputs (list catch2-3.1 clasp libpotassco))
+    (inputs (list catch2-3.3 clasp libpotassco))
     (native-inputs (list mpark-variant
                          pkg-config
                          tl-optional
-- 
2.40.1





Reply sent to Liliana Marie Prikler <liliana.prikler <at> gmail.com>:
You have taken responsibility. (Sat, 01 Jul 2023 10:42:02 GMT) Full text and rfc822 format available.

Notification sent to David Elsing <david.elsing <at> posteo.net>:
bug acknowledged by developer. (Sat, 01 Jul 2023 10:42:02 GMT) Full text and rfc822 format available.

Message #91 received at 64137-done <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: David Elsing <david.elsing <at> posteo.net>
Cc: 64137-done <at> debbugs.gnu.org
Subject: Re: [PATCH 0/2] Build catch2 <at> 3 with CMake and update to 3.3.2
Date: Sat, 01 Jul 2023 12:41:12 +0200
Am Mittwoch, dem 28.06.2023 um 16:50 +0000 schrieb David Elsing:
> Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes:
> 
> > Am Sonntag, dem 25.06.2023 um 10:01 +0000 schrieb David Elsing:
> > > Thanks for your comments, here are the updated patches. I removed
> > > the
> > > cmake-static package as I also don't have any need for it.
> > Thanks for the updates.  I do have some minor changes for the
> > synopses and descriptions, but nothing major.  I'll push them once
> > CI lights green or next weekend :)
> Ok, thanks!
> On armhf-linux, there is an error (warning) from -Werror=cast-align
> because an unsigned char* is cast to std::string*, but this is fine
> because the unsigned char array it points to is declared with
> alignas. I accidentally set -DENABLE_WERROR=OFF instead of
> -DCATCH_ENABLE_WERROR=OFF, but now the build succeeds.
Pushed and followed up with a commit that does that.

Cheers




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 29 Jul 2023 11:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 15 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.