GNU bug report logs -
#39013
[PATCH] gnu: Add abseil-cpp.
Previous Next
Reported by: Roel Janssen <roel <at> gnu.org>
Date: Tue, 7 Jan 2020 15:08:01 UTC
Severity: normal
Tags: patch
Done: Pierre Neidhardt <mail <at> ambrevar.xyz>
Bug is archived. No further changes may be made.
Full log
Message #11 received at 39013 <at> debbugs.gnu.org (full text, mbox):
On Thu, 2020-01-09 at 22:53 +0100, Ludovic Courtès wrote:
> Hi Roel,
>
> Roel Janssen <roel <at> gnu.org> skribis:
>
> > There are two not-so-perfect things with the patch:
> > 1. I had to use the latest Git commit because it adds bits to build
> > shared libraries.
>
> Sounds good to me.
>
> > 2. I disabled the tests because it attempts to download "googletest".
> > I tried modifying the build system to use "googletest" from Guix but
> > that wasn't succesful.
>
> There are packages such as ‘encfs’ where we simply unpack the source of
> our ‘googletest’ package in the right place. Would what work here?
No. Here's an inline version of the package, because I've had enough trouble
with Guix this week.
(define-public abseil-cpp
;; We use this commit because it contains changes to the build system to
;; allow building shared libraries.
(let ((commit "a048203a881f11f4b7b8df5fb563aec85522f8db"))
(package
(name "abseil-cpp")
(version (string-append "20190808-" (string-take commit 7)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/abseil/abseil-cpp.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"13v3bkfyhrcl9am0jcz4cfbfc5rn3acm9z4wm01pn36vcgvw2l4s"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON" "-DABSL_RUN_TESTS=ON")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'unpack-googletest
(lambda* (#:key inputs #:allow-other-keys)
;; So, the CMake 'configure' phase expects the googletest-src
;; and googletest-build directories to be in the ../build
;; directory, but the Guix 'configure' phase creates the
;; directory using (mkdir "../build"), which errors out when
;; we have already created the build directory.
;;
;; The code below errors out, so if you have a solution for
;; this, that would be great. Until that time I will simply
;; postpone working on upgrading the TensorFlow package in
;; the upstream repository of Guix.
(mkdir-p "../build")
(with-directory-excursion "../build"
(format #t "We're in ~s~%" (getcwd))
(mkdir-p "googletest-src")
(mkdir-p "googletest-build")
(copy-recursively
(assoc-ref inputs "googletest-source")
"googletest-src")
(copy-recursively
(assoc-ref inputs "googletest")
"googletest-build"))
#t))
(replace 'check
(lambda _
(invoke "ctest"))))))
(native-inputs
`(("googletest-source" ,(package-source googletest))
("googletest" ,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))))
Thanks,
Roel
This bug report was last modified 5 years and 76 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.