[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03/15: gnu: libfive: Fix install and wrap Studio.
From: |
guix-commits |
Subject: |
03/15: gnu: libfive: Fix install and wrap Studio. |
Date: |
Thu, 18 May 2023 14:07:07 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit a062028bc36d744cc72c6083bf0ee3e7f3286e86
Author: Morgan Smith <Morgan.J.Smith@outlook.com>
AuthorDate: Wed May 10 13:46:16 2023 -0400
gnu: libfive: Fix install and wrap Studio.
The old install phase didn't handle nested directories (which there are) and
the cmake files didn't seem to install the go files in a way that guile
would
use so I just used the guile build system instead.
Also Studio works much better when it know where the libraries are.
* gnu/packages/engineering.scm (libfive)
[imported-modules]: Add (guix build guile-build-system).
[modules]: Add (guix build guile-build-system).
[configure-flags]: Remove.
[phases]: Remove phases 'fix-autocompilation and 'install-scm-files. Add
phase 'do-not-build-guile-bindings and add phase 'guile-build which uses the
guile build system. Add wrap-studio phase.
[inputs]: Add bash-minimal for the wrapper. Use qtbase instead of qtbase-5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
gnu/packages/engineering.scm | 47 ++++++++++++++++++++++++++++++--------------
1 file changed, 32 insertions(+), 15 deletions(-)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 465154abf4..15e55f5637 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -20,7 +20,7 @@
;;; Copyright © 2020, 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;; Copyright © 2020, 2021, 2022, 2023 Vinicius Monego <monego@posteo.net>
-;;; Copyright © 2020, 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
+;;; Copyright © 2020, 2021, 2023 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; Copyright © 2021 qblade <qblade@protonmail.com>
;;; Copyright © 2021 Gerd Heber <gerd.heber@gmail.com>
;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
@@ -908,17 +908,21 @@ fonts to gEDA.")
(build-system cmake-build-system)
(arguments
(list
+ #:imported-modules `((guix build guile-build-system)
+ ,@%cmake-build-system-modules)
+ #:modules '((guix build cmake-build-system)
+ ((guix build guile-build-system) #:prefix guile:)
+ (guix build utils))
#:test-target "libfive-test"
- #:configure-flags
- #~(list (string-append "-DGUILE_CCACHE_DIR="
- #$output "/lib/guile/3.0/site-ccache"))
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'fix-autocompilation
- (lambda _ (setenv "HOME" "/tmp")))
(add-after 'unpack 'remove-native-compilation
(lambda _
(substitute* "CMakeLists.txt" (("-march=native") ""))))
+ (add-after 'unpack 'remove-environment-variable-override
+ (lambda _
+ (substitute* "studio/src/guile/interpreter.cpp"
+ (("qputenv\\(\"GUILE_LOAD_COMPILED_PATH\".*") ""))))
(add-after 'unpack 'fix-library-location
(lambda _
(substitute* "libfive/bind/guile/libfive/lib.scm"
@@ -926,19 +930,32 @@ fonts to gEDA.")
(string-append m "\n\"" #$output "/lib/\""))
(("\\(get-environment-variable \"LIBFIVE_STDLIB_DIR\"\\)" m)
(string-append m "\n\"" #$output "/lib/\"")))))
- (add-after 'install 'install-scm-files
+ (add-after 'unpack 'do-not-build-guile-bindings
+ (lambda _
+ (delete-file "libfive/bind/guile/CMakeLists.txt")
+ (call-with-output-file
+ "libfive/bind/guile/CMakeLists.txt"
+ (lambda (port)
+ (display "add_custom_target(libfive-guile)\n" port)))))
+ (add-after 'build 'guile-build
+ (lambda args
+ (apply (assoc-ref guile:%standard-phases 'build)
+ #:source-directory "../source/libfive/bind/guile"
+ args)))
+ (add-after 'install 'wrap-studio
(lambda _
- (for-each
- (lambda (file)
- (install-file file
- (string-append #$output
-
"/share/guile/site/3.0/libfive")))
- (find-files "../source/libfive/bind/guile/libfive"
- "\\.scm$")))))))
+ (let* ((effective-version
(guile:target-guile-effective-version))
+ (scm (string-append #$output "/share/guile/site/"
+ effective-version))
+ (go (string-append #$output "/lib/guile/"
+ effective-version "/site-ccache")))
+ (wrap-program (string-append #$output "/bin/Studio")
+ `("GUILE_LOAD_PATH" ":" prefix (,scm))
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,go)))))))))
(native-inputs
(list pkg-config))
(inputs
- (list boost libpng qtbase-5 eigen guile-3.0))
+ (list boost libpng qtbase eigen guile-3.0 bash-minimal))
(home-page "https://libfive.com")
(synopsis "Tool for programmatic computer-aided design")
(description
- branch master updated (5b700945fb -> 2344ccee2f), guix-commits, 2023/05/18
- 06/15: gnu: btrfs-progs: Run 'guix style' over the package., guix-commits, 2023/05/18
- 03/15: gnu: libfive: Fix install and wrap Studio.,
guix-commits <=
- 05/15: gnu: libfive: Generate bindings instead of using pre-generated ones., guix-commits, 2023/05/18
- 08/15: gnu: btrfs-progs: Make the python-sphinx input conditional., guix-commits, 2023/05/18
- 02/15: refresh: Honor '--key-server'., guix-commits, 2023/05/18
- 01/15: doc: Change '--with-configure-flag' example to something that works., guix-commits, 2023/05/18
- 04/15: gnu: libfive: Add Python bindings., guix-commits, 2023/05/18
- 07/15: gnu: btrfs-progs: Use new style inputs and gexps., guix-commits, 2023/05/18
- 09/15: gnu: btrfs-progs: Update to 6.3., guix-commits, 2023/05/18
- 10/15: gnu: swaylock: Add linux-pam to inputs., guix-commits, 2023/05/18
- 13/15: gnu: f3d: Update to 2.0.0., guix-commits, 2023/05/18
- 14/15: style: Add 'arguments' styling rule., guix-commits, 2023/05/18