gnu: libcxxabi: Use G-expressions.

* gnu/packages/llvm.scm (libcxxabi-6)[arguments]: Use G-expressions.
<#:configure-flags>: Use "this-package-native-input".

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Zhu Zihao 2022-10-27 16:33:29 +08:00 committed by Ludovic Courtès
parent 8501932f36
commit 1bb3a3ea4e
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1625,38 +1625,43 @@ (define-public libcxxabi-6
"0ki6796b5z08kh3a3rbysr5wwb2dkl6wal5dzd03i4li5xfkvx1g"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(list (string-append "-DLIBCXXABI_LIBCXX_INCLUDES="
(assoc-ref %build-inputs "libcxx")
"/include")
"-DCMAKE_C_COMPILER=clang"
"-DCMAKE_CXX_COMPILER=clang++")
#:phases
(modify-phases (@ (guix build cmake-build-system) %standard-phases)
(add-after 'unpack 'chdir
(lambda _ (chdir "libcxxabi")))
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((gcc (assoc-ref inputs "gcc")))
;; Hide GCC's C++ headers so that they do not interfere with
;; the ones we are attempting to build.
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(cons (string-append
(assoc-ref inputs "libcxx") "/include/c++/v1")
(delete (string-append gcc "/include/c++")
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:)))
":"))
(format #true
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH")))))
(add-after 'install 'install-headers
(lambda* (#:key outputs #:allow-other-keys)
(let ((include-dir (string-append
(assoc-ref outputs "out") "/include")))
(install-file "../libcxxabi/include/__cxxabi_config.h" include-dir)
(install-file "../libcxxabi/include/cxxabi.h" include-dir)))))))
(list
#:configure-flags
#~(list (string-append "-DLIBCXXABI_LIBCXX_INCLUDES="
#$(this-package-native-input "libcxx")
"/include")
"-DCMAKE_C_COMPILER=clang"
"-DCMAKE_CXX_COMPILER=clang++")
#:phases
#~(modify-phases (@ (guix build cmake-build-system) %standard-phases)
(add-after 'unpack 'chdir
(lambda _ (chdir "libcxxabi")))
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((gcc (assoc-ref inputs "gcc")))
;; Hide GCC's C++ headers so that they do not interfere with
;; the ones we are attempting to build.
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(cons (string-append
(assoc-ref inputs "libcxx") "/include/c++/v1")
(delete (string-append gcc "/include/c++")
(string-split
(getenv "CPLUS_INCLUDE_PATH")
#\:)))
":"))
(format
#true
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH")))))
(add-after 'install 'install-headers
(lambda* (#:key outputs #:allow-other-keys)
(let ((include-dir (string-append
(assoc-ref outputs "out") "/include")))
(install-file "../libcxxabi/include/__cxxabi_config.h"
include-dir)
(install-file "../libcxxabi/include/cxxabi.h"
include-dir)))))))
(native-inputs
(list clang-6 llvm-6 libcxx-6))
(home-page "https://libcxxabi.llvm.org")