guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/03: self: 'compiled-files' builds the given list of files.


From: Ludovic Courtès
Subject: 02/03: self: 'compiled-files' builds the given list of files.
Date: Fri, 1 Jun 2018 18:43:55 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 8031b3fa3c01d084a557b53b72e9bf1bcd99aa1a
Author: Ludovic Courtès <address@hidden>
Date:   Sat Jun 2 00:02:23 2018 +0200

    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.
---
 guix/self.scm | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/guix/self.scm b/guix/self.scm
index 1b2a73e..bf5b1be 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]