Hi dear chickeners!
We have a really nice macro[1] that runs "git describe --tags" and produces string-output of our current version at compile-time. This method is (when not cross-compiling) very robust because it doesn't use any temporary files to store the current version etc. We like this method a lot, but it doesn't work when cross compiling, because of this:
installing for target ...
cp -r egg-dir/* /tmp/temp-123
Copying * doesn't include .git and thus our `git describe`-running macro doesn't work. I really don't know how to properly solve this!
- Adding cp -r egg-dir/.* won't work since it will include ../
- We could use `cp -rT egg-dir/ /tmp/temp-123` will work for me but probably not portable:
diff --git a/chicken-install.scm b/chicken-install.scm
index 2df88c8..586bed4 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -612,8 +612,8 @@
(print "copying sources for target installation")
(command
"~a ~a ~a"
- (if *windows-shell* "xcopy" "cp -r")
- (make-pathname eggdir "*")
+ (if *windows-shell* "xcopy" "cp -rT")
+ eggdir
tmpcopy))
(let ((setup
(lambda (dir)
Any ideas on how we might be able to solve this properly?
Thanks!
K.
======================
[1] simple macro for getting git version, won't work on target
(let-syntax
((cube-version
(ir-macro-transformer
(lambda (x e t)
(import posix)
(string-trim-right
(with-input-from-pipe "git describe --tags --always"
read-string))))))
(cube-version))