gnu: glew: Fix cross-compiling.

* gnu/packages/gl.scm (mesa)[native-inputs]: When cross-compiling, add
cmake-minimal-cross.
[arguments]: Adjust 'fix-cross-compiling to find llvm.
* gnu/packages/llvm.scm (llvm-for-mesa)
[arguments]<#:configure-flags>: When cross-compiling, set
-DBUILD_SHARED_LIBS:BOOL=TRUE and -DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE,
remove -DLLVM_LINK_LLVM_DYLIB.*.
<#:phases>: When cross-compiling, remove the 'delete-static-libraries phase.

Change-Id: If10dec7695e62604e080230e10f2b8d7167f660b
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
This commit is contained in:
Zheng Junjie 2024-01-04 20:40:40 +08:00 committed by Mathieu Othacehe
parent b26926189e
commit 53d9190efd
No known key found for this signature in database
GPG key ID: 8354763531769CA6
2 changed files with 32 additions and 15 deletions

View file

@ -27,6 +27,7 @@
;;; Copyright © 2022 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -2169,20 +2170,31 @@ using @code{clang-rename}.")))
;; AMDGPU is needed by the vulkan drivers.
#$(string-append "-DLLVM_TARGETS_TO_BUILD="
(system->llvm-target) ";AMDGPU")
#$@(if (%current-target-system)
'("-DBUILD_SHARED_LIBS:BOOL=TRUE"
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE")
'())
;; Skipping tools and utils decreases the output by ~100 MiB.
"-DLLVM_BUILD_TOOLS=NO"
(remove (cut string-match
"-DLLVM_(TARGETS_TO_BUILD|INSTALL_UTILS).*" <>)
(remove
(cut string-match
#$(if (%current-target-system)
"-DLLVM_(LINK_LLVM_DYLIB|TARGETS_TO_BUILD|INSTALL_UTILS).*"
"-DLLVM_(TARGETS_TO_BUILD|INSTALL_UTILS).*") <>)
#$cf)))
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
(add-after 'install 'delete-static-libraries
;; If these are just relocated then llvm-config can't find them.
(lambda* (#:key outputs #:allow-other-keys)
(for-each delete-file
(find-files (string-append
(assoc-ref outputs "out") "/lib")
"\\.a$"))))
#$@(if (%current-target-system)
'()
#~((add-after 'install 'delete-static-libraries
;; If these are just relocated then llvm-config
;; can't find them.
(lambda* (#:key outputs #:allow-other-keys)
(for-each delete-file
(find-files
(string-append
(assoc-ref outputs "out") "/lib")
"\\.a$"))))))
;; llvm-config is how mesa and others find the various
;; libraries and headers they use.
(add-after 'install 'build-and-install-llvm-config