guix-commits
[Top][All Lists]
Advanced

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

02/09: build-system/asdf: Add support for component-less systems.


From: guix-commits
Subject: 02/09: build-system/asdf: Add support for component-less systems.
Date: Thu, 18 Jun 2020 11:19:44 -0400 (EDT)

ambrevar pushed a commit to branch master
in repository guix.

commit 5a08660ecb965783f581b95704c150e12d721891
Author: Pierre Neidhardt <mail@ambrevar.xyz>
AuthorDate: Thu Jun 18 16:41:08 2020 +0200

    build-system/asdf: Add support for component-less systems.
    
    * guix/build/lisp-utils.scm (make-asd-file): Ensure lib directory exists and
    check if prebuilt bundle system was generated.
    (generate-system-definition): Add :class and :components only if prebuilt
    system was generated.
---
 guix/build/lisp-utils.scm | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/guix/build/lisp-utils.scm b/guix/build/lisp-utils.scm
index c7a589c..5bb3d81 100644
--- a/guix/build/lisp-utils.scm
+++ b/guix/build/lisp-utils.scm
@@ -186,13 +186,17 @@ asdf:system-depends-on.  First load the system's 
ASD-FILE."
       (_ system))))
 
 (define* (generate-system-definition system
-                                     #:key version dependencies)
+                                     #:key version dependencies component?)
   `(asdf:defsystem
     ,(normalize-string system)
-    :class asdf/bundle:prebuilt-system
+    ,@(if component?
+          '(:class asdf/bundle:prebuilt-system)
+          '())
     :version ,version
     :depends-on ,dependencies
-    :components ((:compiled-file ,(compiled-system system)))
+    ,@(if component?
+          `(:components ((:compiled-file ,(compiled-system system))))
+          '())
     ,@(if (string=? "ecl" (%lisp-type))
           `(:lib ,(string-append system ".a"))
           '())))
@@ -311,14 +315,20 @@ system to find its dependencies, as described by 
GENERATE-DEPENDENCY-LINKS."
                            lisp-input-map)
                 (map dependency-name dependencies)))
 
+  ;; Ensure directory exists, which might not be the case for an .asd without 
components.
+  (mkdir-p (dirname asd-file))
   (call-with-output-file asd-file
     (lambda (port)
       (display
        (replace-escaped-macros
         (format #f "~y~%~y~%"
-                (generate-system-definition system
-                                            #:version version
-                                            #:dependencies dependencies)
+                (generate-system-definition
+                 system
+                 #:version version
+                 #:dependencies dependencies
+                 ;; Some .asd don't have components, and thus they don't 
generate any .fasl.
+                 #:component? (pair?
+                               (find-files (dirname asd-file) 
"--system\\.fasl$")))
                 (generate-dependency-links registry system)))
        port))))
 



reply via email to

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