[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/10: gexp: 'compiled-modules' can cross-compile.
From: |
guix-commits |
Subject: |
02/10: gexp: 'compiled-modules' can cross-compile. |
Date: |
Fri, 26 Jul 2019 19:06:05 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit 2cc5ec7f0d64e9e94f6ae637e1f9573d4b948f0a
Author: Ludovic Courtès <address@hidden>
Date: Fri Jul 26 23:22:28 2019 +0200
gexp: 'compiled-modules' can cross-compile.
* guix/gexp.scm (compiled-modules): Add #:target and honor it.
---
guix/gexp.scm | 26 ++++++++++++++++++++++----
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/guix/gexp.scm b/guix/gexp.scm
index eef308b..a83d716 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -1345,6 +1345,7 @@ last one is created from the given <scheme-file> object."
(define* (compiled-modules modules
#:key (name "module-import-compiled")
(system (%current-system))
+ target
(guile (%guile-for-build))
(module-path %load-path)
(extensions '())
@@ -1355,7 +1356,8 @@ last one is created from the given <scheme-file> object."
(pre-load-modules? #t))
"Return a derivation that builds a tree containing the `.go' files
corresponding to MODULES. All the MODULES are built in a context where
-they can refer to each other."
+they can refer to each other. When TARGET is true, cross-compile MODULES for
+TARGET, a GNU triplet."
(define total (length modules))
(mlet %store-monad ((modules (imported-modules modules
@@ -1374,6 +1376,12 @@ they can refer to each other."
(srfi srfi-26)
(system base compile))
+ ;; TODO: Inline this on the next rebuild cycle.
+ (ungexp-splicing
+ (if target
+ (gexp ((use-modules (system base target))))
+ (gexp ())))
+
(define (regular? file)
(not (member file '("." ".."))))
@@ -1391,9 +1399,19 @@ they can refer to each other."
(gexp ()))))
(ungexp (* total (if pre-load-modules? 2 1)))
entry)
- (compile-file entry
- #:output-file output
- #:opts %auto-compilation-options)
+
+ (ungexp-splicing
+ (if target
+ (gexp ((with-target (ungexp target)
+ (lambda ()
+ (compile-file entry
+ #:output-file output
+ #:opts
+ %auto-compilation-options)))))
+ (gexp ((compile-file entry
+ #:output-file output
+ #:opts
%auto-compilation-options)))))
+
(+ 1 processed))))
(define (process-directory directory output processed)
- branch master updated (d23a00b -> 4b03565), guix-commits, 2019/07/26
- 01/10: discovery: 'scheme-files' ignores hidden files., guix-commits, 2019/07/26
- 02/10: gexp: 'compiled-modules' can cross-compile.,
guix-commits <=
- 04/10: gnu: Add emacs-bug-hunter., guix-commits, 2019/07/26
- 03/10: gexp: 'program-file' honors the current system and cross-compilation target., guix-commits, 2019/07/26
- 08/10: gnu: Add emacs-wc-mode., guix-commits, 2019/07/26
- 10/10: gnu: hpcguix-web: Update to f39c90b., guix-commits, 2019/07/26
- 09/10: gnu: Add emacs-mastodon., guix-commits, 2019/07/26
- 05/10: Add emacs-gnus-alias., guix-commits, 2019/07/26
- 07/10: gnu: Add emacs-ox-pandoc., guix-commits, 2019/07/26
- 06/10: gnu: Add emacs-ox-epub., guix-commits, 2019/07/26