mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-26 22:38:07 -05:00
gnu: Add clang-15.
* gnu/packages/llvm.scm (clang-from-llvm): Add LEGACY-BUILD-SHARED-LIBS? argument and update doc. [configure-flags]: Conditionally add -DCLANG_LINK_CLANG_DYLIB=ON. [phases]{change-directory}: Conditionally add phase. {add-tools-extra}: Conditionally patch AddClang.cmake file. (clang-15): New variable. (clang-14): Streamline. (clang-13, clang-12, clang-11, clang-10, clang-9, clang-8, clang-7, clang-6) (clang-3.9.1, clang-3.8, clang-3.7, clang-3.5): Set LEGACY-BUILD-SHARED-LIBS? argument to #t.
This commit is contained in:
parent
52c1f5c825
commit
ac99ead663
1 changed files with 65 additions and 31 deletions
|
@ -176,11 +176,14 @@ (define* (clang-from-llvm llvm clang-runtime
|
||||||
(properties
|
(properties
|
||||||
(append `((release-monitoring-url
|
(append `((release-monitoring-url
|
||||||
. ,%llvm-release-monitoring-url))
|
. ,%llvm-release-monitoring-url))
|
||||||
(clang-properties (package-version llvm)))))
|
(clang-properties (package-version llvm))))
|
||||||
|
(legacy-build-shared-libs? #f))
|
||||||
"Produce Clang with dependencies on LLVM and CLANG-RUNTIME, and applying the
|
"Produce Clang with dependencies on LLVM and CLANG-RUNTIME, and applying the
|
||||||
given PATCHES. When TOOLS-EXTRA is given, it must point to the
|
given PATCHES. When TOOLS-EXTRA is given, it must point to the
|
||||||
'clang-tools-extra' tarball, which contains code for 'clang-tidy', 'pp-trace',
|
'clang-tools-extra' tarball, which contains code for 'clang-tidy', 'pp-trace',
|
||||||
'modularize', and other tools."
|
'modularize', and other tools. LEGACY-BUILD-SHARED-LIBS? is used to configure
|
||||||
|
the package to use the legacy BUILD_SHARED_LIBS CMake option, which was used
|
||||||
|
until LLVM/Clang 14."
|
||||||
(package
|
(package
|
||||||
(name "clang")
|
(name "clang")
|
||||||
(version (package-version llvm))
|
(version (package-version llvm))
|
||||||
|
@ -221,14 +224,17 @@ (define* (clang-from-llvm llvm clang-runtime
|
||||||
(string-append "-DC_INCLUDE_DIRS="
|
(string-append "-DC_INCLUDE_DIRS="
|
||||||
(assoc-ref %build-inputs "libc")
|
(assoc-ref %build-inputs "libc")
|
||||||
"/include")
|
"/include")
|
||||||
,@(if (target-riscv64?)
|
,@(if (target-riscv64?)
|
||||||
(list "-DLIBOMP_LIBFLAGS=-latomic"
|
(list "-DLIBOMP_LIBFLAGS=-latomic"
|
||||||
"-DCMAKE_SHARED_LINKER_FLAGS=-latomic")
|
"-DCMAKE_SHARED_LINKER_FLAGS=-latomic")
|
||||||
`()))
|
`())
|
||||||
|
,@(if legacy-build-shared-libs?
|
||||||
|
'()
|
||||||
|
(list "-DCLANG_LINK_CLANG_DYLIB=ON")))
|
||||||
|
|
||||||
,@(if (target-riscv64?)
|
,@(if (target-riscv64?)
|
||||||
`(#:make-flags '("LDFLAGS=-latomic"))
|
`(#:make-flags '("LDFLAGS=-latomic"))
|
||||||
'())
|
'())
|
||||||
|
|
||||||
;; Don't use '-g' during the build to save space.
|
;; Don't use '-g' during the build to save space.
|
||||||
#:build-type "Release"
|
#:build-type "Release"
|
||||||
|
@ -247,9 +253,11 @@ (define* (clang-from-llvm llvm clang-runtime
|
||||||
(string-delete #\- (package-version llvm))
|
(string-delete #\- (package-version llvm))
|
||||||
".src")
|
".src")
|
||||||
"tools/extra")
|
"tools/extra")
|
||||||
;; Build and link to shared libraries.
|
,@(if legacy-build-shared-libs?
|
||||||
(substitute* "cmake/modules/AddClang.cmake"
|
;; Build and link to shared libraries.
|
||||||
(("BUILD_SHARED_LIBS") "True"))
|
'((substitute* "cmake/modules/AddClang.cmake"
|
||||||
|
(("BUILD_SHARED_LIBS") "True")))
|
||||||
|
'())
|
||||||
#t))))
|
#t))))
|
||||||
'())
|
'())
|
||||||
(add-after 'unpack 'add-missing-triplets
|
(add-after 'unpack 'add-missing-triplets
|
||||||
|
@ -323,6 +331,15 @@ (define* (clang-from-llvm llvm clang-runtime
|
||||||
(("@GLIBC_LIBDIR@")
|
(("@GLIBC_LIBDIR@")
|
||||||
(string-append libc "/lib"))))))
|
(string-append libc "/lib"))))))
|
||||||
#t)))
|
#t)))
|
||||||
|
;; Awkwardly, multiple phases added after the same phase,
|
||||||
|
;; e.g. unpack, get applied in the reverse order. In other
|
||||||
|
;; words, adding 'change-directory last means it occurs
|
||||||
|
;; first after the unpack phase.
|
||||||
|
,@(if (version>=? version "14")
|
||||||
|
'((add-after 'unpack 'change-directory
|
||||||
|
(lambda _
|
||||||
|
(chdir "clang"))))
|
||||||
|
'())
|
||||||
,@(if (version>=? version "10")
|
,@(if (version>=? version "10")
|
||||||
`((add-after 'install 'adjust-cmake-file
|
`((add-after 'install 'adjust-cmake-file
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
@ -713,26 +730,31 @@ (define-public clang-runtime-14
|
||||||
("gcc" ,gcc-11)
|
("gcc" ,gcc-11)
|
||||||
,@(package-native-inputs template))))))
|
,@(package-native-inputs template))))))
|
||||||
|
|
||||||
|
(define-public clang-15
|
||||||
|
(clang-from-llvm
|
||||||
|
llvm-15 clang-runtime-15
|
||||||
|
#:tools-extra
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (llvm-uri "clang-tools-extra"
|
||||||
|
(package-version llvm-15)))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"03adxlh84if9p53m6izjsql500rjza9rng8akab2pdqibgrg73rh")))))
|
||||||
|
|
||||||
(define-public clang-14
|
(define-public clang-14
|
||||||
(let ((template
|
(clang-from-llvm
|
||||||
(clang-from-llvm llvm-14 clang-runtime-14
|
llvm-14 clang-runtime-14
|
||||||
#:tools-extra
|
#:legacy-build-shared-libs? #t
|
||||||
(origin
|
#:tools-extra
|
||||||
(method url-fetch)
|
(origin
|
||||||
(uri (llvm-uri "clang-tools-extra"
|
(method url-fetch)
|
||||||
(package-version llvm-14)))
|
(uri (llvm-uri "clang-tools-extra"
|
||||||
(sha256
|
(package-version llvm-14)))
|
||||||
(base32
|
(sha256
|
||||||
"0rhq4wkmvr369nkk059skzzw7jx6qhzqhmiwmqg4sp66avzviwvw"))))))
|
(base32
|
||||||
(package
|
"0rhq4wkmvr369nkk059skzzw7jx6qhzqhmiwmqg4sp66avzviwvw")))))
|
||||||
(inherit template)
|
|
||||||
(arguments
|
|
||||||
(substitute-keyword-arguments (package-arguments template)
|
|
||||||
((#:phases phases '(@ (guix build cmake-build-system) %standard-phases))
|
|
||||||
#~(modify-phases #$phases
|
|
||||||
(add-after 'unpack 'change-directory
|
|
||||||
(lambda _
|
|
||||||
(chdir "clang"))))))))))
|
|
||||||
|
|
||||||
(define-public libomp-14
|
(define-public libomp-14
|
||||||
(package
|
(package
|
||||||
|
@ -805,6 +827,7 @@ (define-public clang-runtime-13
|
||||||
(define-public clang-13
|
(define-public clang-13
|
||||||
(clang-from-llvm llvm-13 clang-runtime-13
|
(clang-from-llvm llvm-13 clang-runtime-13
|
||||||
"1j8pr5kk8iqyb4jds3yl7c6x672617h4ngkpl4575j7mk4nrwykq"
|
"1j8pr5kk8iqyb4jds3yl7c6x672617h4ngkpl4575j7mk4nrwykq"
|
||||||
|
#:legacy-build-shared-libs? #t
|
||||||
#:patches '("clang-13.0-libc-search-path.patch")
|
#:patches '("clang-13.0-libc-search-path.patch")
|
||||||
#:tools-extra
|
#:tools-extra
|
||||||
(origin
|
(origin
|
||||||
|
@ -919,6 +942,7 @@ (define-public clang-runtime-12
|
||||||
(define-public clang-12
|
(define-public clang-12
|
||||||
(clang-from-llvm llvm-12 clang-runtime-12
|
(clang-from-llvm llvm-12 clang-runtime-12
|
||||||
"0px4gl27az6cdz6adds89qzdwb1cqpjsfvrldbz9qvpmphrj34bf"
|
"0px4gl27az6cdz6adds89qzdwb1cqpjsfvrldbz9qvpmphrj34bf"
|
||||||
|
#:legacy-build-shared-libs? #t
|
||||||
#:patches '("clang-12.0-libc-search-path.patch")
|
#:patches '("clang-12.0-libc-search-path.patch")
|
||||||
#:tools-extra
|
#:tools-extra
|
||||||
(origin
|
(origin
|
||||||
|
@ -973,6 +997,7 @@ (define-public clang-runtime-11
|
||||||
(define-public clang-11
|
(define-public clang-11
|
||||||
(clang-from-llvm llvm-11 clang-runtime-11
|
(clang-from-llvm llvm-11 clang-runtime-11
|
||||||
"02ajkij85966vd150iy246mv16dsaph1kfi0y8wnncp8w6nar5hg"
|
"02ajkij85966vd150iy246mv16dsaph1kfi0y8wnncp8w6nar5hg"
|
||||||
|
#:legacy-build-shared-libs? #t
|
||||||
#:patches '("clang-11.0-libc-search-path.patch")
|
#:patches '("clang-11.0-libc-search-path.patch")
|
||||||
#:tools-extra
|
#:tools-extra
|
||||||
(origin
|
(origin
|
||||||
|
@ -1029,12 +1054,13 @@ (define-public clang-runtime-10
|
||||||
(define-public clang-10
|
(define-public clang-10
|
||||||
(clang-from-llvm llvm-10 clang-runtime-10
|
(clang-from-llvm llvm-10 clang-runtime-10
|
||||||
"091bvcny2lh32zy8f3m9viayyhb2zannrndni7325rl85cwgr6pr"
|
"091bvcny2lh32zy8f3m9viayyhb2zannrndni7325rl85cwgr6pr"
|
||||||
|
#:legacy-build-shared-libs? #t
|
||||||
#:patches '("clang-10.0-libc-search-path.patch")
|
#:patches '("clang-10.0-libc-search-path.patch")
|
||||||
#:tools-extra
|
#:tools-extra
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (llvm-uri "clang-tools-extra"
|
(uri (llvm-uri "clang-tools-extra"
|
||||||
(package-version llvm-10)))
|
(package-version llvm-10)))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"06n1yp638rh24xdxv9v2df0qajxbjz4w59b7dd4ky36drwmpi4yh")))))
|
"06n1yp638rh24xdxv9v2df0qajxbjz4w59b7dd4ky36drwmpi4yh")))))
|
||||||
|
@ -1098,6 +1124,7 @@ (define-public clang-runtime-9
|
||||||
(define-public clang-9
|
(define-public clang-9
|
||||||
(clang-from-llvm llvm-9 clang-runtime-9
|
(clang-from-llvm llvm-9 clang-runtime-9
|
||||||
"0ls2h3iv4finqyflyhry21qhc9cm9ga7g1zq21020p065qmm2y2p"
|
"0ls2h3iv4finqyflyhry21qhc9cm9ga7g1zq21020p065qmm2y2p"
|
||||||
|
#:legacy-build-shared-libs? #t
|
||||||
#:patches '("clang-9.0-libc-search-path.patch")))
|
#:patches '("clang-9.0-libc-search-path.patch")))
|
||||||
|
|
||||||
(define-public libomp-9
|
(define-public libomp-9
|
||||||
|
@ -1141,6 +1168,7 @@ (define-public clang-runtime-8
|
||||||
(define-public clang-8
|
(define-public clang-8
|
||||||
(clang-from-llvm llvm-8 clang-runtime-8
|
(clang-from-llvm llvm-8 clang-runtime-8
|
||||||
"0ihnbdl058gvl2wdy45p5am55bq8ifx8m9mhcsgj9ax8yxlzvvvh"
|
"0ihnbdl058gvl2wdy45p5am55bq8ifx8m9mhcsgj9ax8yxlzvvvh"
|
||||||
|
#:legacy-build-shared-libs? #t
|
||||||
#:patches '("clang-8.0-libc-search-path.patch")))
|
#:patches '("clang-8.0-libc-search-path.patch")))
|
||||||
|
|
||||||
(define-public libomp-8
|
(define-public libomp-8
|
||||||
|
@ -1183,6 +1211,7 @@ (define-public clang-runtime-7
|
||||||
(define-public clang-7
|
(define-public clang-7
|
||||||
(clang-from-llvm llvm-7 clang-runtime-7
|
(clang-from-llvm llvm-7 clang-runtime-7
|
||||||
"0vc4i87qwxnw9lci4ayws9spakg0z6w5w670snj9f8g5m9rc8zg9"
|
"0vc4i87qwxnw9lci4ayws9spakg0z6w5w670snj9f8g5m9rc8zg9"
|
||||||
|
#:legacy-build-shared-libs? #t
|
||||||
#:patches '("clang-7.0-libc-search-path.patch")))
|
#:patches '("clang-7.0-libc-search-path.patch")))
|
||||||
|
|
||||||
(define-public libomp-7
|
(define-public libomp-7
|
||||||
|
@ -1224,6 +1253,7 @@ (define-public clang-runtime-6
|
||||||
(define-public clang-6
|
(define-public clang-6
|
||||||
(clang-from-llvm llvm-6 clang-runtime-6
|
(clang-from-llvm llvm-6 clang-runtime-6
|
||||||
"0rxn4rh7rrnsqbdgp4gzc8ishbkryhpl1kd3mpnxzpxxhla3y93w"
|
"0rxn4rh7rrnsqbdgp4gzc8ishbkryhpl1kd3mpnxzpxxhla3y93w"
|
||||||
|
#:legacy-build-shared-libs? #t
|
||||||
#:patches '("clang-6.0-libc-search-path.patch")))
|
#:patches '("clang-6.0-libc-search-path.patch")))
|
||||||
|
|
||||||
(define-public libomp-6
|
(define-public libomp-6
|
||||||
|
@ -1285,6 +1315,7 @@ (define-public clang-runtime-3.9.1
|
||||||
(define-public clang-3.9.1
|
(define-public clang-3.9.1
|
||||||
(clang-from-llvm llvm-3.9.1 clang-runtime-3.9.1
|
(clang-from-llvm llvm-3.9.1 clang-runtime-3.9.1
|
||||||
"0qsyyb40iwifhhlx9a3drf8z6ni6zwyk3bvh0kx2gs6yjsxwxi76"
|
"0qsyyb40iwifhhlx9a3drf8z6ni6zwyk3bvh0kx2gs6yjsxwxi76"
|
||||||
|
#:legacy-build-shared-libs? #t
|
||||||
#:patches '("clang-3.8-libc-search-path.patch")))
|
#:patches '("clang-3.8-libc-search-path.patch")))
|
||||||
|
|
||||||
(define-public llvm-3.8
|
(define-public llvm-3.8
|
||||||
|
@ -1311,6 +1342,7 @@ (define-public clang-runtime-3.8
|
||||||
(define-public clang-3.8
|
(define-public clang-3.8
|
||||||
(clang-from-llvm llvm-3.8 clang-runtime-3.8
|
(clang-from-llvm llvm-3.8 clang-runtime-3.8
|
||||||
"1prc72xmkgx8wrzmrr337776676nhsp1qd3mw2bvb22bzdnq7lsc"
|
"1prc72xmkgx8wrzmrr337776676nhsp1qd3mw2bvb22bzdnq7lsc"
|
||||||
|
#:legacy-build-shared-libs? #t
|
||||||
#:patches '("clang-3.8-libc-search-path.patch")))
|
#:patches '("clang-3.8-libc-search-path.patch")))
|
||||||
|
|
||||||
(define-public llvm-3.7
|
(define-public llvm-3.7
|
||||||
|
@ -1337,6 +1369,7 @@ (define-public clang-runtime-3.7
|
||||||
(define-public clang-3.7
|
(define-public clang-3.7
|
||||||
(clang-from-llvm llvm-3.7 clang-runtime-3.7
|
(clang-from-llvm llvm-3.7 clang-runtime-3.7
|
||||||
"0x065d0w9b51xvdjxwfzjxng0gzpbx45fgiaxpap45ragi61dqjn"
|
"0x065d0w9b51xvdjxwfzjxng0gzpbx45fgiaxpap45ragi61dqjn"
|
||||||
|
#:legacy-build-shared-libs? #t
|
||||||
#:patches '("clang-3.5-libc-search-path.patch")))
|
#:patches '("clang-3.5-libc-search-path.patch")))
|
||||||
|
|
||||||
(define-public llvm-3.6
|
(define-public llvm-3.6
|
||||||
|
@ -1396,6 +1429,7 @@ (define-public clang-runtime-3.5
|
||||||
(define-public clang-3.5
|
(define-public clang-3.5
|
||||||
(clang-from-llvm llvm-3.5 clang-runtime-3.5
|
(clang-from-llvm llvm-3.5 clang-runtime-3.5
|
||||||
"0846h8vn3zlc00jkmvrmy88gc6ql6014c02l4jv78fpvfigmgssg"
|
"0846h8vn3zlc00jkmvrmy88gc6ql6014c02l4jv78fpvfigmgssg"
|
||||||
|
#:legacy-build-shared-libs? #t
|
||||||
#:patches '("clang-3.5-libc-search-path.patch")))
|
#:patches '("clang-3.5-libc-search-path.patch")))
|
||||||
|
|
||||||
;; Default LLVM and Clang version.
|
;; Default LLVM and Clang version.
|
||||||
|
|
Loading…
Reference in a new issue