mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
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 @@ (define* (clang-runtime-from-llvm llvm hash
|
|||
(supported-systems (delete "mips64el-linux" %supported-systems))))
|
||||
|
||||
(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
|
||||
given PATCHES. When TOOLS-EXTRA is given, it must point to the
|
||||
'clang-tools-extra' tarball, which contains code for 'clang-tidy', 'pp-trace',
|
||||
|
@ -426,10 +428,76 @@ (define (move program)
|
|||
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
|
||||
code analysis tools.")
|
||||
(properties properties)
|
||||
(license (if (version>=? version "9.0")
|
||||
license:asl2.0 ;with LLVM exceptions
|
||||
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)
|
||||
(package
|
||||
(name (string-append (package-name clang) "-toolchain"))
|
||||
|
@ -471,6 +539,7 @@ (define (make-clang-toolchain clang)
|
|||
(search-paths (package-search-paths clang))
|
||||
|
||||
(license (package-license clang))
|
||||
(properties (package-properties clang)) ;for 'compiler-cpu-architectures'
|
||||
(home-page "https://clang.llvm.org")
|
||||
(synopsis "Complete Clang toolchain for C/C++ development")
|
||||
(description "This package provides a complete Clang toolchain for C/C++
|
||||
|
|
Loading…
Reference in a new issue