~ chicken-core (chicken-5) 2ce47f3abb947520d13dd5c5452fabe603c003ef
commit 2ce47f3abb947520d13dd5c5452fabe603c003ef Author: felix <felix@call-with-current-continuation.org> AuthorDate: Wed Jul 4 21:24:49 2018 +0200 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Thu Jul 5 20:37:08 2018 +1200 Properly handle directory copying in "data" egg components Signed-off-by: Evan Hanson <evhan@foldling.org> diff --git a/egg-compile.scm b/egg-compile.scm index ec45e4fb..29dd610e 100644 --- a/egg-compile.scm +++ b/egg-compile.scm @@ -741,16 +741,23 @@ (define ((install-data name #!key files destination mode) srcdir platform) - (let* ((cmd (install-file-command platform)) + (let* ((fcmd (install-file-command platform)) + (dcmd (copy-directory-command platform)) (mkdir (mkdir-command platform)) + (sfiles (map (cut prefix srcdir <>) files)) (dest (or destination (if (eq? mode 'target) default-sharedir (override-prefix "/share" host-sharedir)))) (dfile (quotearg (slashify dest platform))) (ddir (shell-variable "DESTDIR" platform))) (print "\n" mkdir " " ddir dfile) - (print cmd (arglist (map (cut prefix srcdir <>) files)) " " ddir - dfile))) + (let-values (((ds fs) (partition directory? sfiles))) + (for-each + (lambda (d) + (print dcmd " " (quotearg d) " " ddir dfile)) + ds) + (when (pair? fs) + (print fcmd (arglist fs) " " ddir dfile))))) (define ((install-c-include name #!key deps files destination mode) srcdir platform)Trap