summaryrefslogtreecommitdiff
path: root/guix/gexp.scm
diff options
context:
space:
mode:
authorMathieu Othacehe <m.othacehe@gmail.com>2019-12-14 17:52:53 +0100
committerMathieu Othacehe <m.othacehe@gmail.com>2019-12-22 10:06:57 +0100
commit3cd1444df70a0d2ff69a90441d86b4920ce18002 (patch)
treee14a2b0b3ddfbf5e8bb23451fc27676d68e95eab /guix/gexp.scm
parent80a61b38b84f881ff2bf735754c07ab8e38c763b (diff)
downloadpatches-3cd1444df70a0d2ff69a90441d86b4920ce18002.tar
patches-3cd1444df70a0d2ff69a90441d86b4920ce18002.tar.gz
gexp: Add system and target support to gexp->file.
* guix/gexp.scm (gexp->file): Add system and target arguments and pass them to gexp->derivation and load-path-expression calls, (scheme-file-compiler): adapt accordingly to pass system and target arguments.
Diffstat (limited to 'guix/gexp.scm')
-rw-r--r--guix/gexp.scm22
1 files changed, 17 insertions, 5 deletions
diff --git a/guix/gexp.scm b/guix/gexp.scm
index ffe4fc95c7..ef09c030ee 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -456,7 +457,10 @@ This is the declarative counterpart of 'gexp->file'."
;; Compile FILE by returning a derivation that builds the file.
(match file
(($ <scheme-file> name gexp splice?)
- (gexp->file name gexp #:splice? splice?))))
+ (gexp->file name gexp
+ #:splice? splice?
+ #:system system
+ #:target target))))
;; Appending SUFFIX to BASE's output file name.
(define-record-type <file-append>
@@ -1598,7 +1602,9 @@ imported modules in its search path. Look up EXP's modules in MODULE-PATH."
(define* (gexp->file name exp #:key
(set-load-path? #t)
(module-path %load-path)
- (splice? #f))
+ (splice? #f)
+ (system (%current-system))
+ target)
"Return a derivation that builds a file NAME containing EXP. When SPLICE?
is true, EXP is considered to be a list of expressions that will be spliced in
the resulting file.
@@ -1621,10 +1627,14 @@ Lookup EXP's modules in MODULE-PATH."
exp
(gexp ((ungexp exp)))))))))
#:local-build? #t
- #:substitutable? #f)
+ #:substitutable? #f
+ #:system system
+ #:target target)
(mlet %store-monad ((set-load-path
(load-path-expression modules module-path
- #:extensions extensions)))
+ #:extensions extensions
+ #:system system
+ #:target target)))
(gexp->derivation name
(gexp
(call-with-output-file (ungexp output)
@@ -1637,7 +1647,9 @@ Lookup EXP's modules in MODULE-PATH."
(gexp ((ungexp exp)))))))))
#:module-path module-path
#:local-build? #t
- #:substitutable? #f))))
+ #:substitutable? #f
+ #:system system
+ #:target target))))
(define* (text-file* name #:rest text)
"Return as a monadic value a derivation that builds a text file containing