diff options
-rw-r--r-- | gnu/packages/llvm.scm | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 497dd6e6cc..605bd8629a 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -1015,6 +1015,38 @@ use with Clang, targeting C++11, C++14 and above.") standard C++ library.") (license license:expat))) +(define-public libcxx+libcxxabi-6 + (package + (inherit libcxx-6) + (name "libcxx+libcxxabi") + (version (package-version libcxx-6)) + (arguments + `(#:configure-flags + (list "-DLIBCXX_CXX_ABI=libcxxabi" + (string-append "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=" + (assoc-ref %build-inputs "libcxxabi") + "/include")) + #:phases + (modify-phases (@ (guix build cmake-build-system) %standard-phases) + (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 + (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")))))))) + (native-inputs + `(("clang" ,clang-6) + ("llvm" ,llvm-6) + ("libcxxabi" ,libcxxabi-6))))) + (define-public libclc (package (name "libclc") |