diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-06-02 00:02:23 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-06-02 00:43:49 +0200 |
commit | 8031b3fa3c01d084a557b53b72e9bf1bcd99aa1a (patch) | |
tree | 1b09d3c36d00305c4fe2beeab7383a6ef9bcd587 | |
parent | e3a87d770f8be330259ef92348e0cf0a392bb24d (diff) | |
download | 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.
-rw-r--r-- | guix/self.scm | 27 |
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 |