gnu: clang: Add 'compiler-cpu-architectures' property.
* gnu/packages/llvm.scm (clang-from-llvm): Add #:properties and honor it. (clang-properties): New procedures. (make-clang-toolchain): Set 'properties' field.
This commit is contained in:
parent
2576e2019d
commit
0a767f02d4
1 changed files with 70 additions and 1 deletions
|
|
@ -155,7 +155,9 @@ compiler. In LLVM this library is called \"compiler-rt\".")
|
||||||
(supported-systems (delete "mips64el-linux" %supported-systems))))
|
(supported-systems (delete "mips64el-linux" %supported-systems))))
|
||||||
|
|
||||||
(define* (clang-from-llvm llvm clang-runtime hash
|
(define* (clang-from-llvm llvm clang-runtime hash
|
||||||
#:key (patches '()) tools-extra)
|
#:key (patches '()) tools-extra
|
||||||
|
(properties
|
||||||
|
(clang-properties (package-version llvm))))
|
||||||
"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',
|
||||||
|
|
@ -426,10 +428,76 @@ given PATCHES. When TOOLS-EXTRA is given, it must point to the
|
||||||
Objective-C++ programming languages. It uses LLVM as its back end. The Clang
|
Objective-C++ programming languages. It uses LLVM as its back end. The Clang
|
||||||
project includes the Clang front end, the Clang static analyzer, and several
|
project includes the Clang front end, the Clang static analyzer, and several
|
||||||
code analysis tools.")
|
code analysis tools.")
|
||||||
|
(properties properties)
|
||||||
(license (if (version>=? version "9.0")
|
(license (if (version>=? version "9.0")
|
||||||
license:asl2.0 ;with LLVM exceptions
|
license:asl2.0 ;with LLVM exceptions
|
||||||
license:ncsa))))
|
license:ncsa))))
|
||||||
|
|
||||||
|
(define (clang-properties version)
|
||||||
|
"Return package properties for Clang VERSION."
|
||||||
|
`((compiler-cpu-architectures
|
||||||
|
("x86_64"
|
||||||
|
;; This list was obtained by running:
|
||||||
|
;;
|
||||||
|
;; guix shell clang -- llc -march=x86-64 -mattr=help
|
||||||
|
;;
|
||||||
|
;; filtered from uninteresting entries such as "i686" and "pentium".
|
||||||
|
,@(if (version>=? version "10.0") ;TODO: refine
|
||||||
|
'("atom"
|
||||||
|
"barcelona"
|
||||||
|
"bdver1"
|
||||||
|
"bdver2"
|
||||||
|
"bdver3"
|
||||||
|
"bdver4"
|
||||||
|
"bonnell"
|
||||||
|
"broadwell"
|
||||||
|
"btver1"
|
||||||
|
"btver2"
|
||||||
|
"c3"
|
||||||
|
"c3-2"
|
||||||
|
"cannonlake"
|
||||||
|
"cascadelake"
|
||||||
|
"cooperlake"
|
||||||
|
"core-avx-i"
|
||||||
|
"core-avx2"
|
||||||
|
"core2"
|
||||||
|
"corei7"
|
||||||
|
"corei7-avx"
|
||||||
|
"generic"
|
||||||
|
"geode"
|
||||||
|
"goldmont"
|
||||||
|
"goldmont-plus"
|
||||||
|
"haswell"
|
||||||
|
"icelake-client"
|
||||||
|
"icelake-server"
|
||||||
|
"ivybridge"
|
||||||
|
"k8"
|
||||||
|
"k8-sse3"
|
||||||
|
"knl"
|
||||||
|
"knm"
|
||||||
|
"lakemont"
|
||||||
|
"nehalem"
|
||||||
|
"nocona"
|
||||||
|
"opteron"
|
||||||
|
"opteron-sse3"
|
||||||
|
"sandybridge"
|
||||||
|
"silvermont"
|
||||||
|
"skx"
|
||||||
|
"skylake"
|
||||||
|
"skylake-avx512"
|
||||||
|
"slm"
|
||||||
|
"tigerlake"
|
||||||
|
"tremont"
|
||||||
|
"westmere"
|
||||||
|
"x86-64"
|
||||||
|
"x86-64-v2"
|
||||||
|
"x86-64-v3"
|
||||||
|
"x86-64-v4"
|
||||||
|
"znver1"
|
||||||
|
"znver2"
|
||||||
|
"znver3")
|
||||||
|
'())))))
|
||||||
|
|
||||||
(define (make-clang-toolchain clang)
|
(define (make-clang-toolchain clang)
|
||||||
(package
|
(package
|
||||||
(name (string-append (package-name clang) "-toolchain"))
|
(name (string-append (package-name clang) "-toolchain"))
|
||||||
|
|
@ -471,6 +539,7 @@ code analysis tools.")
|
||||||
(search-paths (package-search-paths clang))
|
(search-paths (package-search-paths clang))
|
||||||
|
|
||||||
(license (package-license clang))
|
(license (package-license clang))
|
||||||
|
(properties (package-properties clang)) ;for 'compiler-cpu-architectures'
|
||||||
(home-page "https://clang.llvm.org")
|
(home-page "https://clang.llvm.org")
|
||||||
(synopsis "Complete Clang toolchain for C/C++ development")
|
(synopsis "Complete Clang toolchain for C/C++ development")
|
||||||
(description "This package provides a complete Clang toolchain for C/C++
|
(description "This package provides a complete Clang toolchain for C/C++
|
||||||
|
|
|
||||||
Reference in a new issue