diff options
author | Morgan Smith <Morgan.J.Smith@outlook.com> | 2023-05-10 13:46:18 -0400 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2023-05-18 19:38:32 +0200 |
commit | 3b4a31d52c9adf919830f13cb01cbbeeeebea87c (patch) | |
tree | ceb081ece03d560505c8d0dffc5d5c6f39cbaf8e | |
parent | a062028bc36d744cc72c6083bf0ee3e7f3286e86 (diff) | |
download | guix-3b4a31d52c9adf919830f13cb01cbbeeeebea87c.tar.gz |
gnu: libfive: Add Python bindings.
* gnu/packages/engineering.scm (libfive) [configure-flags]: Add python site-dir. [phases]<fix-library-location>: Fix for python as well. <wrap-studio>: Wrap for python as well. [inputs]: Add python-wrapper. Alphabetize. [description]: Add python. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r-- | gnu/packages/engineering.scm | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 15e55f5637..c2767234fd 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -914,6 +914,14 @@ fonts to gEDA.") ((guix build guile-build-system) #:prefix guile:) (guix build utils)) #:test-target "libfive-test" + #:configure-flags #~(list + (string-append + "-DPYTHON_SITE_PACKAGES_DIR=" + #$output "/lib/python" + #$(version-major+minor + (package-version + (this-package-input "python-wrapper"))) + "/site-packages")) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'remove-native-compilation @@ -929,7 +937,10 @@ fonts to gEDA.") (("\\(get-environment-variable \"LIBFIVE_FRAMEWORK_DIR\"\\)" m) (string-append m "\n\"" #$output "/lib/\"")) (("\\(get-environment-variable \"LIBFIVE_STDLIB_DIR\"\\)" m) - (string-append m "\n\"" #$output "/lib/\""))))) + (string-append m "\n\"" #$output "/lib/\""))) + (substitute* "libfive/bind/python/libfive/ffi.py" + (("os.environ.get\\('LIBFIVE_FRAMEWORK_DIR'\\)" m) + (string-append m " or \"" #$output "/lib/\""))))) (add-after 'unpack 'do-not-build-guile-bindings (lambda _ (delete-file "libfive/bind/guile/CMakeLists.txt") @@ -948,22 +959,28 @@ fonts to gEDA.") (scm (string-append #$output "/share/guile/site/" effective-version)) (go (string-append #$output "/lib/guile/" - effective-version "/site-ccache"))) + effective-version "/site-ccache")) + (py (string-append #$output "/lib/python" + #$(version-major+minor + (package-version + (this-package-input "python-wrapper"))) + "/site-packages"))) (wrap-program (string-append #$output "/bin/Studio") `("GUILE_LOAD_PATH" ":" prefix (,scm)) - `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,go))))))))) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,go)) + `("GUIX_PYTHONPATH" ":" prefix (,py))))))))) (native-inputs (list pkg-config)) (inputs - (list boost libpng qtbase eigen guile-3.0 bash-minimal)) + (list bash-minimal boost eigen guile-3.0 libpng python-wrapper qtbase)) (home-page "https://libfive.com") (synopsis "Tool for programmatic computer-aided design") (description "Libfive is a tool for programmatic computer-aided design (CAD). In -libfive, solid models are defined as Scheme scripts, and there are no opaque -function calls into the geometry kernel: everything is visible to the user. -Even fundamental, primitive shapes are represented as code in the user-level -language.") +libfive, solid models are defined as Scheme or Python scripts, and there are +no opaque function calls into the geometry kernel: everything is visible to +the user. Even fundamental, primitive shapes are represented as code in the +user-level language.") (license (list license:mpl2.0 ;library license:gpl2+)) ;Guile bindings and GUI |