[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/03: gexp: compiled-modules: Factorize build code.
From: |
Ludovic Courtès |
Subject: |
02/03: gexp: compiled-modules: Factorize build code. |
Date: |
Sun, 1 Apr 2018 06:36:45 -0400 (EDT) |
civodul pushed a commit to branch core-updates
in repository guix.
commit e640c9e6f3da88d575f719a013b7b9806060a240
Author: Ludovic Courtès <address@hidden>
Date: Sun Apr 1 12:10:30 2018 +0200
gexp: compiled-modules: Factorize build code.
* guix/gexp.scm (compiled-modules)[build]: Factorize 'process-entry'.
---
guix/gexp.scm | 28 ++++++++++++----------------
1 file changed, 12 insertions(+), 16 deletions(-)
diff --git a/guix/gexp.scm b/guix/gexp.scm
index b47965d..612af62 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -1068,25 +1068,21 @@ they can refer to each other."
(define (regular? file)
(not (member file '("." ".."))))
+ (define (process-entry entry output)
+ (if (file-is-directory? entry)
+ (let ((output (string-append output "/" (basename entry))))
+ (mkdir-p output)
+ (process-directory entry output))
+ (let* ((base (basename entry ".scm"))
+ (output (string-append output "/" base ".go")))
+ (compile-file entry
+ #:output-file output
+ #:opts %auto-compilation-options))))
+
(define (process-directory directory output)
(let ((entries (map (cut string-append directory "/" <>)
(scandir directory regular?))))
- (for-each (lambda (entry)
- (if (file-is-directory? entry)
- (let ((output (string-append output "/"
- (basename entry))))
- (mkdir-p output)
- (process-directory entry output))
- (let* ((base (string-drop-right
- (basename entry)
- 4)) ;.scm
- (output (string-append output "/" base
- ".go")))
- (compile-file entry
- #:output-file output
- #:opts
- %auto-compilation-options))))
- entries)))
+ (for-each (cut process-entry <> output) entries)))
(set! %load-path (cons (ungexp modules) %load-path))
(mkdir (ungexp output))