diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2021-01-03 21:19:46 +0100 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2021-01-03 22:38:50 +0100 |
commit | 8caf7939220c464a8982f9bfa44430860067e8aa (patch) | |
tree | 0c7770f9e0453a4972cd3e2652a84aca09f713b8 /gnu/packages | |
parent | b9a372066669b863a872efd0a48940f16a0a3698 (diff) | |
download | guix-8caf7939220c464a8982f9bfa44430860067e8aa.tar guix-8caf7939220c464a8982f9bfa44430860067e8aa.tar.gz |
gnu: guile-rsvg: Compile Scheme files.
* gnu/packages/gtk.scm (guile-rsvg)[arguments]: Add phase "install-go-files".
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/gtk.scm | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 5e090eb5ed..89efcd61c4 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1040,10 +1040,36 @@ exceptions, macros, and a dynamic programming environment.") (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (replace 'bootstrap - (lambda _ - (invoke "autoreconf" "-vfi")))))) + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 rdelim) + (ice-9 popen)) + #:phases + (modify-phases %standard-phases + (replace 'bootstrap + (lambda _ + (invoke "autoreconf" "-vfi"))) + (add-after 'install 'install-go-files + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (effective (read-line + (open-pipe* OPEN_READ + "guile" "-c" + "(display (effective-version))"))) + (module-dir (string-append out "/share/guile/site/" + effective)) + (object-dir (string-append out "/lib/guile/" effective + "/site-ccache")) + (prefix (string-length module-dir))) + ;; compile to the destination + (for-each (lambda (file) + (let* ((base (string-drop (string-drop-right file 4) + prefix)) + (go (string-append object-dir base ".go"))) + (invoke "guild" "compile" "-L" module-dir + file "-o" go))) + (find-files module-dir "\\.scm$")) + #t)))))) (native-inputs `(("pkg-config" ,pkg-config) ("autoconf" ,autoconf) ("automake" ,automake) |