From 9fabde9d10b3cb6ddf5e01d504e5f4fc445748ab Mon Sep 17 00:00:00 2001 From: felix Date: Wed, 4 Jul 2018 21:24:49 +0200 Subject: [PATCH] properly handle directory-copying in "data" egg components --- egg-compile.scm | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/egg-compile.scm b/egg-compile.scm index ec45e4f..06fb130 100644 --- a/egg-compile.scm +++ b/egg-compile.scm @@ -741,16 +741,24 @@ (define ((install-data name #!key files destination mode) srcdir platform) - (let* ((cmd (install-file-command platform)) - (mkdir (mkdir-command platform)) - (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? files))) + (let* ((fcmd (install-file-command platform)) + (dcmd (copy-directory-command platform)) + (mkdir (mkdir-command platform)) + (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) + (for-each + (lambda (d) + (print dcmd (arglist (map (cut prefix srcdir <>) ds)) " " + ddir dfile)) + ds) + (when (pair? fs) + (print fcmd (arglist (map (cut prefix srcdir <>) fs)) " " + ddir dfile))))) (define ((install-c-include name #!key deps files destination mode) srcdir platform) -- 1.7.9.5