aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-04-22 15:24:47 +0200
committerLudovic Courtès <ludo@gnu.org>2020-04-22 19:23:57 +0200
commit34faf63ebc9221f5cac460bc54237ea8436d5046 (patch)
tree72fcf08ec92d539392f7713eb22eaf3a5d42dceb
parentf916ac128a2c4f65f06f6a5148a4862855754d1a (diff)
downloadguix-34faf63ebc9221f5cac460bc54237ea8436d5046.tar.gz
guix-34faf63ebc9221f5cac460bc54237ea8436d5046.zip
gexp: Add 'load-path?' field to <scheme-file>.
* guix/gexp.scm (<scheme-file>)[load-path?]: New field. (scheme-file): Add #:set-load-path? and honor it. (scheme-file-compiler): Pass #:set-load-path? to 'gexp->file'. * doc/guix.texi (G-Expressions): Document it.
-rw-r--r--doc/guix.texi3
-rw-r--r--guix/gexp.scm12
2 files changed, 9 insertions, 6 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index a79bbfc4f7..990703c4a8 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -7955,7 +7955,8 @@ The resulting file holds references to all the dependencies of @var{exp}
or a subset thereof.
@end deffn
-@deffn {Scheme Procedure} scheme-file @var{name} @var{exp} [#:splice? #f]
+@deffn {Scheme Procedure} scheme-file @var{name} @var{exp} @
+ [#:splice? #f] [#:set-load-path? #t]
Return an object representing the Scheme file @var{name} that contains
@var{exp}.
diff --git a/guix/gexp.scm b/guix/gexp.scm
index 4ac0411da1..c320065546 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -472,24 +472,26 @@ This is the declarative counterpart of 'gexp->script'."
#:target target))))
(define-record-type <scheme-file>
- (%scheme-file name gexp splice?)
+ (%scheme-file name gexp splice? load-path?)
scheme-file?
(name scheme-file-name) ;string
(gexp scheme-file-gexp) ;gexp
- (splice? scheme-file-splice?)) ;Boolean
+ (splice? scheme-file-splice?) ;Boolean
+ (load-path? scheme-file-set-load-path?)) ;Boolean
-(define* (scheme-file name gexp #:key splice?)
+(define* (scheme-file name gexp #:key splice? (set-load-path? #t))
"Return an object representing the Scheme file NAME that contains GEXP.
This is the declarative counterpart of 'gexp->file'."
- (%scheme-file name gexp splice?))
+ (%scheme-file name gexp splice? set-load-path?))
(define-gexp-compiler (scheme-file-compiler (file <scheme-file>)
system target)
;; Compile FILE by returning a derivation that builds the file.
(match file
- (($ <scheme-file> name gexp splice?)
+ (($ <scheme-file> name gexp splice? set-load-path?)
(gexp->file name gexp
+ #:set-load-path? set-load-path?
#:splice? splice?
#:system system
#:target target))))