guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

05/09: gnu: clang@10, clang@11: Fix CMake files.


From: guix-commits
Subject: 05/09: gnu: clang@10, clang@11: Fix CMake files.
Date: Thu, 22 Oct 2020 12:49:06 -0400 (EDT)

mbakke pushed a commit to branch master
in repository guix.

commit f91046ce67fcf75183c749fec7dc603d5eba8838
Author: Marius Bakke <marius@gnu.org>
AuthorDate: Wed Oct 21 21:23:24 2020 +0200

    gnu: clang@10, clang@11: Fix CMake files.
    
    * gnu/packages/llvm.scm (clang-from-llvm): Add phase adjust-cmake-file when
    building Clang 10 or later.
---
 gnu/packages/llvm.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index c500430..eb93433 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -326,6 +326,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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]