summaryrefslogtreecommitdiff
path: root/gnu/packages/llvm.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/llvm.scm')
-rw-r--r--gnu/packages/llvm.scm59
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")