[PATCH consfigurator] DATA.ASDF:SYSTEM-VERSION-FILES support systems with version files

Russell Sim rsl at simopolis.xyz
Mon Sep 26 21:48:13 BST 2022


Some systems use READ-FILE-FORM or READ-FILE-LINE in their definitions to
declare how to read the version of the project they contain.

  (defsystem usocket
      :version (:read-file-form "version.sexp")

This file isn't included in the component files, instead they are added
to the ADDITIONAL-INPUT-FILES and declared under DEFINE-OP.

Signed-off-by: Russell Sim <rsl at simopolis.xyz>
---
 src/data/asdf.lisp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/data/asdf.lisp b/src/data/asdf.lisp
index ee1385c..4944cdf 100644
--- a/src/data/asdf.lisp
+++ b/src/data/asdf.lisp
@@ -54,6 +54,7 @@
   (let* ((system (asdf:find-system system))
          (name (asdf:component-name system))
          (file (asdf:system-source-file system))
+         (define-op-files (asdf:additional-input-files 'asdf:define-op system))
          (written (file-write-date file)))
     (unless (string= (pathname-name file) name)
       (error "Cannot upload secondary systems directly."))
@@ -80,4 +81,6 @@
                      when (and (not (eql system other*))
                                (string= name (asdf:primary-system-name other*)))
                        nconc (recurse other*)))))
-        (values written (cons file files))))))
+        (values written (append (list file)
+                                define-op-files
+                                files))))))
-- 
2.37.2





More information about the sgo-software-discuss mailing list