guix-commits
[Top][All Lists]
Advanced

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

02/10: build-system/guile: Add #:not-compiled-file-regexp.


From: guix-commits
Subject: 02/10: build-system/guile: Add #:not-compiled-file-regexp.
Date: Sun, 2 Jun 2019 16:21:24 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 30eb73836684ff8502063c43f3b315174e0d3a0b
Author: Ludovic Courtès <address@hidden>
Date:   Sun Jun 2 20:59:34 2019 +0200

    build-system/guile: Add #:not-compiled-file-regexp.
    
    * guix/build/guile-build-system.scm (build): Add
     #:not-compiled-file-regexp and honor it.
    * guix/build-system/guile.scm (guile-build): Likewise.
    (guile-cross-build): Likewise.
---
 guix/build-system/guile.scm       |  6 +++++-
 guix/build/guile-build-system.scm | 30 +++++++++++++++++++-----------
 2 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/guix/build-system/guile.scm b/guix/build-system/guile.scm
index 77a5f00..2c5cc96 100644
--- a/guix/build-system/guile.scm
+++ b/guix/build-system/guile.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Ludovic Courtès <address@hidden>
+;;; Copyright © 2018, 2019 Ludovic Courtès <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -75,6 +75,7 @@
                       (search-paths '())
                       (system (%current-system))
                       (source-directory ".")
+                      not-compiled-file-regexp
                       (compile-flags %compile-flags)
                       (imported-modules %guile-build-system-modules)
                       (modules '((guix build guile-build-system)
@@ -92,6 +93,7 @@
                                 (source
                                  source))
                     #:source-directory ,source-directory
+                    #:not-compiled-file-regexp ,not-compiled-file-regexp
                     #:compile-flags ,compile-flags
                     #:phases ,phases
                     #:system ,system
@@ -128,6 +130,7 @@
 
                             (phases '%standard-phases)
                             (source-directory ".")
+                            not-compiled-file-regexp
                             (compile-flags %compile-flags)
                             (imported-modules %guile-build-system-modules)
                             (modules '((guix build guile-build-system)
@@ -168,6 +171,7 @@
                       #:target ,target
                       #:outputs %outputs
                       #:source-directory ,source-directory
+                      #:not-compiled-file-regexp ,not-compiled-file-regexp
                       #:compile-flags ,compile-flags
                       #:inputs %build-target-inputs
                       #:native-inputs %build-host-inputs
diff --git a/guix/build/guile-build-system.scm 
b/guix/build/guile-build-system.scm
index 69819c8..eb7a918 100644
--- a/guix/build/guile-build-system.scm
+++ b/guix/build/guile-build-system.scm
@@ -19,10 +19,12 @@
 (define-module (guix build guile-build-system)
   #:use-module ((guix build gnu-build-system) #:prefix gnu:)
   #:use-module (guix build utils)
+  #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match)
   #:use-module (ice-9 popen)
   #:use-module (ice-9 rdelim)
+  #:use-module (ice-9 regex)
   #:use-module (guix build utils)
   #:export (target-guile-effective-version
             %standard-phases
@@ -134,9 +136,12 @@ Raise an error if one of the processes exit with non-zero."
                 (source-directory ".")
                 (compile-flags '())
                 (scheme-file-regexp %scheme-file-regexp)
+                (not-compiled-file-regexp #f)
                 target
                 #:allow-other-keys)
-  "Build files in SOURCE-DIRECTORY that match SCHEME-FILE-REGEXP."
+  "Build files in SOURCE-DIRECTORY that match SCHEME-FILE-REGEXP.  Files
+matching NOT-COMPILED-FILE-REGEXP, if true, are not compiled but are
+installed; this is useful for files that are meant to be included."
   (let* ((out        (assoc-ref outputs "out"))
          (guile      (assoc-ref (or native-inputs inputs) "guile"))
          (effective  (target-guile-effective-version guile))
@@ -171,16 +176,19 @@ Raise an error if one of the processes exit with 
non-zero."
            (with-directory-excursion source-directory
              (find-files "." scheme-file-regexp))))
     (invoke-each
-     (map (lambda (file)
-            (cons* guild
-                   "guild" "compile"
-                   "-L" source-directory
-                   "-o" (string-append go-dir
-                                       (file-sans-extension file)
-                                       ".go")
-                   (string-append source-directory "/" file)
-                   flags))
-          source-files)
+     (filter-map (lambda (file)
+                   (and (or (not not-compiled-file-regexp)
+                            (not (string-match not-compiled-file-regexp
+                                               file)))
+                        (cons* guild
+                               "guild" "compile"
+                               "-L" source-directory
+                               "-o" (string-append go-dir
+                                                   (file-sans-extension file)
+                                                   ".go")
+                               (string-append source-directory "/" file)
+                               flags)))
+                 source-files)
      #:max-processes (parallel-job-count)
      #:report-progress report-build-progress)
 



reply via email to

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