guix-commits
[Top][All Lists]
Advanced

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

01/02: gnu: llvm: Add 'system->llvm-target' procedure.


From: guix-commits
Subject: 01/02: gnu: llvm: Add 'system->llvm-target' procedure.
Date: Tue, 23 Jul 2019 18:31:37 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 96a9a8d398b0bbb44ad96d41597a8f0323628e86
Author: Ludovic Courtès <address@hidden>
Date:   Tue Jul 23 16:57:25 2019 +0200

    gnu: llvm: Add 'system->llvm-target' procedure.
    
    * gnu/packages/llvm.scm (system->llvm-target): New procedure.
---
 gnu/packages/llvm.scm | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 1fe9af3..9efb4a4 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -46,7 +46,30 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages xml))
+  #:use-module (gnu packages xml)
+  #:export (system->llvm-target))
+
+(define* (system->llvm-target #:optional
+                              (system (or (and=> (%current-target-system)
+                                                 gnu-triplet->nix-system)
+                                          (%current-system))))
+  "Return the LLVM target name that corresponds to SYSTEM, a system type such
+as \"x86_64-linux\"."
+  ;; See the 'lib/Target' directory of LLVM for a list of supported targets.
+  (letrec-syntax ((matches (syntax-rules (=>)
+                             ((_ (system-prefix => target) rest ...)
+                              (if (string-prefix? system-prefix system)
+                                  target
+                                  (matches rest ...)))
+                             ((_)
+                              (error "LLVM target for system is unknown" 
system)))))
+    (matches ("aarch64"     => "AArch64")
+             ("armhf"       => "ARM")
+             ("mips64el"    => "Mips")
+             ("powerpc"     => "PowerPC")
+             ("riscv"       => "RISCV")
+             ("x86_64"      => "X86")
+             ("i686"        => "X86"))))
 
 (define-public llvm-8
   (package



reply via email to

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