aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/engineering.scm69
1 files changed, 69 insertions, 0 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 7f5409c835..c1c1b18ed3 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -65,6 +65,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gperf)
+ #:use-module (gnu packages graphics)
#:use-module (gnu packages groff)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
@@ -89,6 +90,7 @@
#:use-module (gnu packages tex)
#:use-module (gnu packages version-control)
#:use-module (gnu packages wxwidgets)
+ #:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
(define-public librecad
@@ -2145,3 +2147,70 @@ well as conversion and validation tools for input and output data. The
specification can be downloaded at @url{http://3mf.io/specification/}.")
(home-page "https://3mf.io/")
(license license:bsd-2)))
+
+(define-public openscad
+ (package
+ (name "openscad")
+ (version "2019.05")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://files.openscad.org/openscad-" version
+ ".src.tar.gz"))
+ (sha256
+ (base32
+ "0nbgk5q5pgnw53la0kccdcpz2f4xf6d6076rkn0q08z57hkc85ha"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("boost" ,boost)
+ ("cgal" ,cgal)
+ ("double-conversion" ,double-conversion)
+ ("eigen" ,eigen)
+ ("fontconfig" ,fontconfig)
+ ("glew" ,glew)
+ ("gmp" ,gmp)
+ ("harfbuzz" ,harfbuzz)
+ ("lib3mf" ,lib3mf)
+ ("libxml2" ,libxml2)
+ ("libzip" ,libzip)
+ ("mpfr" ,mpfr)
+ ("opencsg" ,opencsg)
+ ("qscintilla" ,qscintilla)
+ ("qtbase" ,qtbase)
+ ("qtmultimedia" ,qtmultimedia)))
+ (native-inputs
+ `(("bison" ,bison)
+ ("flex" ,flex)
+ ("gettext" ,gettext-minimal)
+ ("pkg-config" ,pkg-config)
+ ("which" ,which)
+ ;; the following are only needed for tests
+ ("imagemagick" ,imagemagick)
+ ("ps" ,procps)
+ ("python" ,python)
+ ("xvfb" ,xorg-server)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "qmake"
+ (string-append "PREFIX=" (assoc-ref outputs "out")))
+ #t))
+ (replace 'check
+ (lambda _
+ (with-directory-excursion "tests"
+ (invoke "cmake" ".")
+ (invoke "make")
+ (invoke "ctest"))
+ ;; strip python test files since lib dir ends up in out/share
+ (for-each delete-file
+ (find-files "libraries/MCAD" ".*\\.py"))
+ #t)))))
+ (synopsis "Script-based 3D modeling application")
+ (description
+ "OpenSCAD is a 3D Computer-aided Design (CAD) application. Unlike an
+interactive modeler, OpenSCAD generates 3D models from a script, giving you
+full programmatic control over your models.")
+ (home-page "https://www.openscad.org/")
+ (license license:gpl2+)))