diff options
Diffstat (limited to 'gnu/packages/llvm.scm')
-rw-r--r-- | gnu/packages/llvm.scm | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index c500430dd5..b2b80572fb 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -48,12 +48,16 @@ #:use-module (gnu packages gcc) #:use-module (gnu packages bootstrap) ;glibc-dynamic-linker #:use-module (gnu packages compression) + #:use-module (gnu packages libedit) #:use-module (gnu packages libffi) + #:use-module (gnu packages lua) #:use-module (gnu packages mpi) + #:use-module (gnu packages ncurses) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages swig) #:use-module (gnu packages xml) #:export (system->llvm-target)) @@ -326,6 +330,27 @@ given PATCHES. When TOOLS-EXTRA is given, it must point to the (("@GLIBC_LIBDIR@") (string-append libc "/lib")))))) #t))) + ,@(if (version>=? version "10") + `((add-after 'install 'adjust-cmake-file + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; Clang generates a CMake file with "targets" + ;; for each installed library file. Downstream + ;; consumers of the CMake interface can use this + ;; to get absolute library locations. Including + ;; this file will needlessly assert that _all_ + ;; libraries are available, which causes problems + ;; in Guix because some are removed (see the + ;; move-extra-tools phase). Thus, remove the + ;; asserts so that the main functionality works. + (substitute* + (string-append + out + "/lib/cmake/clang/ClangTargets-release.cmake") + (("list\\(APPEND _IMPORT_CHECK_TARGETS.*" all) + (string-append "# Disabled by Guix.\n#" all))) + #t)))) + '()) ,@(if (version>? version "3.8") `((add-after 'install 'symlink-cfi_blacklist (lambda* (#:key inputs outputs #:allow-other-keys) @@ -854,6 +879,40 @@ of programming tools as well as libraries with equivalent functionality.") components which highly leverage existing libraries in the larger LLVM Project.") (license license:asl2.0))) ; With LLVM exception +(define-public lldb + (package + (name "lldb") + (version "11.0.0") + (source (origin + (method url-fetch) + (uri (llvm-uri "lldb" version)) + (sha256 + (base32 + "0wic9lyb2la9bkzdc13szkm4f793w1mddp50xvh237iraygw0w45")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DCMAKE_CXX_COMPILER=clang++"))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("swig" ,swig))) + (inputs + `(("clang" ,clang-11) + ("llvm" ,llvm-11) + + ;; Optional (but recommended) inputs. + ("curses" ,ncurses) + ("editline" ,libedit) + ("liblzma" ,xz) + ("libxml2" ,libxml2) + ("lua" ,lua) + ("python" ,python))) + (home-page "https://lldb.llvm.org/") + (synopsis "Low level debugger") + (description + "LLDB is a high performance debugger built as a set of reusable components +which highly leverage existing libraries in the larger LLVM project.") + (license license:asl2.0))) ;with LLVM exceptions + (define-public libcxx (package (name "libcxx") |