gnu: abseil-cpp-20220623: Remove inheritance.

* gnu/packages/cpp.scm (abseil-cpp-20220623): Remove inheritance from
abseil-cpp-20200923.3 while keeping the derivation unchanged.
(abseil-cpp-20200923.3): Update comment.

Change-Id: I7d5fad14211127272769a02461c6f96cd8a073e4
This commit is contained in:
Andreas Enge 2025-09-17 17:02:04 +02:00
parent 036e8fada3
commit 05fc558fb2
No known key found for this signature in database
GPG key ID: F7D5C9BF765C61E3

View file

@ -48,6 +48,7 @@
;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2025 Romain Garbage <romain.garbage@inria.fr> ;;; Copyright © 2025 Romain Garbage <romain.garbage@inria.fr>
;;; Copyright © 2024, 2025 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2024, 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2025 Andreas Enge <andreas@enge.fr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -2042,8 +2043,7 @@ point and then, after each tween step, plugging back the result.")
(license license:expat))) (license license:expat)))
(define-public abseil-cpp-20200923.3 (define-public abseil-cpp-20200923.3
;; This is not needed anymore except as a base of inheritance for ;; This is not needed anymore.
;; abseil-cpp-20220623.
(package (package
(name "abseil-cpp") (name "abseil-cpp")
(version "20200923.3") (version "20200923.3")
@ -2098,27 +2098,64 @@ Google's C++ code base.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public abseil-cpp-20220623 (define-public abseil-cpp-20220623
(let ((base abseil-cpp-20200923.3)) (package
(package (name "abseil-cpp")
(inherit base) (version "20220623.2")
(name "abseil-cpp") (source (origin
(version "20220623.2") (method git-fetch)
(source (origin (uri (git-reference
(method git-fetch) (url "https://github.com/abseil/abseil-cpp")
(uri (git-reference (commit version)))
(url "https://github.com/abseil/abseil-cpp") (file-name (git-file-name name version))
(commit version))) (sha256
(file-name (git-file-name name version)) (base32
(sha256 "1cmchfcqp85yp5hc3i47xv3i14v0f2wd5h2jblvcjjmjyhji1bwr"))
(base32 (patches
"1cmchfcqp85yp5hc3i47xv3i14v0f2wd5h2jblvcjjmjyhji1bwr")) (search-patches "abseil-cpp-20220623.1-no-kepsilon-i686.patch"))))
(patches (build-system cmake-build-system)
(search-patches "abseil-cpp-20220623.1-no-kepsilon-i686.patch")))) (arguments
(arguments (list
(substitute-keyword-arguments (package-arguments base) #:configure-flags
((#:configure-flags flags) ;; The following convoluted expression has been crafted to avoid
`(cons* "-DABSL_BUILD_TESTING=ON" ;; changing the derivation when removing inheritance from
(delete "-DABSL_RUN_TESTS=ON" ,flags)))))))) ;; abseil-cpp-20200923.3.
#~(cons*
"-DABSL_BUILD_TESTING=ON"
(delete
"-DABSL_RUN_TESTS=ON"
(list "-DBUILD_SHARED_LIBS=ON"
"-DABSL_RUN_TESTS=ON"
"-DABSL_USE_EXTERNAL_GOOGLETEST=ON"
;; Needed, else we get errors like:
;; ld: CMakeFiles/absl_periodic_sampler_test.dir/internal/periodic_sampler_test.cc.o:
;; undefined reference to symbol '_ZN7testing4Mock16UnregisterLockedEPNS_8internal25UntypedFunctionMockerBaseE'
;; ld: /gnu/store/...-googletest-1.10.0/lib/libgmock.so:
;; error adding symbols: DSO missing from command line
;; collect2: error: ld returned 1 exit status
"-DCMAKE_EXE_LINKER_FLAGS=-lgtest -lpthread -lgmock")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-max
(lambda _
(substitute* "absl/debugging/failure_signal_handler.cc"
(("std::max\\(SIGSTKSZ, 65536\\)")
"std::max<size_t>(SIGSTKSZ, 65536)"))))
(add-before 'configure 'remove-gtest-check
;; The CMakeLists fails to find our googletest for some reason, but
;; it works nonetheless.
(lambda _
(substitute* "CMakeLists.txt"
(("check_target\\(gtest\\)") "")
(("check_target\\(gtest_main\\)") "")
(("check_target\\(gmock\\)") "")))))))
(native-inputs
(list googletest))
(home-page "https://abseil.io")
(synopsis "Augmented C++ standard library")
(description "Abseil is a collection of C++ library code designed to
augment the C++ standard library. The Abseil library code is collected from
Google's C++ code base.")
(license license:asl2.0)))
(define-public abseil-cpp (define-public abseil-cpp
(let ((base abseil-cpp-20220623)) (let ((base abseil-cpp-20220623))