Hi!

This patch enables the (previously disabled) handling of component
dependencies in .egg files. A "dependencies" property inside a "component"
expression will now declare the dependency on a file in the egg source
tree and will properly trigger a rebuild of the component. Also, any custom
build scripts will be included in the depdency list.

As Kristian pointed out correctly, the 2 different meanings of "dependency"
(egg dep on toplevel, file dep in component) is indeed confusing. Unfortunately,
I couldn't come up with a better name, yet.


felix
From 69329ddb8034614f8b8be6f460f09e07cb61e6d6 Mon Sep 17 00:00:00 2001
From: felix <[email protected]>
Date: Mon, 7 May 2018 11:08:34 +0200
Subject: [PATCH] Enable local/inner dependencies, add custom build script to
 deps, if used

---
 egg-compile.scm |   27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/egg-compile.scm b/egg-compile.scm
index f080300..950c4ae 100644
--- a/egg-compile.scm
+++ b/egg-compile.scm
@@ -289,7 +289,7 @@
         ((inline-file)
          (set! ifile (or (null? (cdr info)) (arg info 1 name?))))
         ((custom-build)
-         (set! cbuild (arg info 1 string?)))
+         (set! cbuild (->string (arg info 1 name?))))
         ((csc-options) 
          (set! opts (append opts (cdr info))))
         ((link-options)
@@ -479,7 +479,9 @@
            " -D compiling-static-extension"
            " -C -I" srcdir (arglist opts) 
            " " src " -o " out " : "
-           src " " (quotearg eggfile) #;(arglist dependencies))))
+           src " " (quotearg eggfile) " "
+           (if custom (quotearg cmd) "") " "
+           (filelist srcdir dependencies))))
 
 (define ((compile-dynamic-extension name #!key mode dependencies mode
                                     source (options '()) (link-options '()) 
@@ -512,7 +514,9 @@
            " -D compiling-extension -J -s"
            " -setup-mode -I " srcdir " -C -I" srcdir (arglist opts)
            (arglist link-options) " " src " -o " out " : "
-           src " " (quotearg eggfile) #;(arglist dependencies))))
+           src " " (quotearg eggfile) " "
+           (if custom (quotearg cmd) "") " "
+           (filelist srcdir dependencies))))
 
 (define ((compile-import-library name #!key dependencies mode
                                  (options '()) (link-options '())
@@ -534,7 +538,7 @@
            (if (eq? mode 'host) " -host" "")
            " -I " srcdir " -C -I" srcdir (arglist opts)
            (arglist link-options) " " src " -o " out " : "
-           src #;(arglist dependencies))))
+           src (filelist srcdir dependencies))))
 
 (define ((compile-dynamic-program name #!key dependencies source mode
                                      (options '()) (link-options '())
@@ -559,7 +563,9 @@
            (if (eq? mode 'host) " -host" "")
            " -I " srcdir " -C -I" srcdir (arglist opts)
            (arglist link-options) " " src " -o " out " : "
-           src " " (quotearg eggfile) #;(arglist dependencies))))
+           src " " (quotearg eggfile) " "
+           (if custom (quotearg cmd) "") " "
+           (filelist srcdir dependencies))))
 
 (define ((compile-static-program name #!key dependencies source
                                     (options '()) (link-options '())
@@ -584,7 +590,9 @@
            " -static -setup-mode -I " srcdir " -C -I" 
            srcdir (arglist opts)
            (arglist link-options) " " src " -o " out " : "
-           src " " (quotearg eggfile) #;(arglist dependencies))))
+           src " " (quotearg eggfile) " "
+           (if custom (quotearg cmd) "") " "
+           (filelist srcdir dependencies))))
 
 (define ((compile-generated-file name #!key dependencies source custom) 
          srcdir platform)
@@ -595,8 +603,8 @@
     (when custom
       (prepare-custom-command cmd platform))
     (print "\n" (slashify default-builder platform)
-           " " out " " cmd " : "
-           #;(arglist dependencies))))
+           " " out " " cmd " : " cmd " "
+           (filelist srcdir dependencies))))
 
 
 ;; installation operations
@@ -861,6 +869,9 @@ EOF
 (define (arglist lst)
   (apply conc (map (lambda (x) (conc " " (quotearg x))) lst)))
 
+(define (filelist dir lst)
+  (arglist (map (cut prefix dir <>) lst)))
+
 (define (shell-variable var platform)
   (case platform
     ((unix) (string-append "${" var "}"))
-- 
1.7.9.5

_______________________________________________
Chicken-hackers mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-hackers

Reply via email to