summaryrefslogtreecommitdiff
path: root/guix/self.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-06-02 00:02:23 +0200
committerLudovic Courtès <ludo@gnu.org>2018-06-02 00:43:49 +0200
commit8031b3fa3c01d084a557b53b72e9bf1bcd99aa1a (patch)
tree1b09d3c36d00305c4fe2beeab7383a6ef9bcd587 /guix/self.scm
parente3a87d770f8be330259ef92348e0cf0a392bb24d (diff)
downloadgnu-guix-8031b3fa3c01d084a557b53b72e9bf1bcd99aa1a.tar
gnu-guix-8031b3fa3c01d084a557b53b72e9bf1bcd99aa1a.tar.gz
self: 'compiled-files' builds the given list of files.
* guix/self.scm (compiled-files): Add 'module-files' parameter. [build]: 'process-directory' now honors MODULE-FILES instead of building any '.scm' file it sees. (scheme-node): Adjust accordingly.
Diffstat (limited to 'guix/self.scm')
-rw-r--r--guix/self.scm27
1 files changed, 14 insertions, 13 deletions
diff --git a/guix/self.scm b/guix/self.scm
index 1b2a73e8f7..bf5b1be1f3 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -171,7 +171,8 @@ must be present in the search path."
(source (imported-files (string-append name "-source")
(append module-files extra-files))))
(node name modules source dependencies
- (compiled-modules name source modules
+ (compiled-modules name source
+ (map car module-files)
(map node-source dependencies)
(map node-compiled dependencies)
#:extensions extensions
@@ -505,7 +506,7 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
#:substitutable? #f
#:env-vars (("COLUMNS" . "200")))))
-(define* (compiled-modules name module-tree modules
+(define* (compiled-modules name module-tree module-files
#:optional
(dependencies '())
(dependencies-compiled '())
@@ -513,6 +514,9 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
(extensions '()) ;full-blown Guile packages
parallel?
guile-for-build)
+ "Build all the MODULE-FILES from MODULE-TREE. MODULE-FILES must be a list
+like '(\"guix/foo.scm\" \"gnu/bar.scm\") and MODULE-TREE is the directory
+containing MODULE-FILES and possibly other files as well."
;; This is a non-monadic, enhanced version of 'compiled-file' from (guix
;; gexp).
(define build
@@ -543,16 +547,13 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
(* 100. (/ completed total)) total)
(force-output))
- (define (process-directory directory output)
- (let ((files (find-files directory "\\.scm$"))
- (prefix (+ 1 (string-length directory))))
- ;; Hide compilation warnings.
- (parameterize ((current-warning-port (%make-void-port "w")))
- (compile-files directory #$output
- (map (cut string-drop <> prefix) files)
- #:workers (parallel-job-count)
- #:report-load report-load
- #:report-compilation report-compilation))))
+ (define (process-directory directory files output)
+ ;; Hide compilation warnings.
+ (parameterize ((current-warning-port (%make-void-port "w")))
+ (compile-files directory #$output files
+ #:workers (parallel-job-count)
+ #:report-load report-load
+ #:report-compilation report-compilation)))
(setvbuf (current-output-port) _IONBF)
(setvbuf (current-error-port) _IONBF)
@@ -580,7 +581,7 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
(mkdir #$output)
(chdir #+module-tree)
- (process-directory "." #$output)
+ (process-directory "." '#+module-files #$output)
(newline))))
(computed-file name build