summary refs log tree commit diff
path: root/gnu/packages/engineering.scm
diff options
context:
space:
mode:
authorMalte Frank Gerdes <malte.f.gerdes@gmail.com>2022-04-07 15:40:47 +0200
committerGuillaume Le Vaillant <glv@posteo.net>2022-04-07 15:41:18 +0200
commit742a7d897f26797b705a32f72628f2f3b2770940 (patch)
treecf1415f582baee02d09dfe82575b36bdbf540cf7 /gnu/packages/engineering.scm
parent390d68c95660986769da556affbda9b04ea7aa7d (diff)
downloadguix-742a7d897f26797b705a32f72628f2f3b2770940.tar.gz
gnu: Add cura-engine.
* gnu/packages/engineering.scm (cura-engine): New variable.

Co-authored-by: Guillaume Le Vaillant <glv@posteo.net>
Diffstat (limited to 'gnu/packages/engineering.scm')
-rw-r--r--gnu/packages/engineering.scm43
1 files changed, 43 insertions, 0 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 1580671555..36695fcb92 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -127,6 +127,7 @@
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages stb)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tbb)
   #:use-module (gnu packages tcl)
@@ -3289,3 +3290,45 @@ creating a socket in a thread and using this socket to send and receive
 messages based on the Protocol Buffers library.  It is designed to
 facilitate the communication between Cura and its backend and similar code.")
     (license license:lgpl3+)))
+
+(define-public cura-engine
+  (package
+    (name "cura-engine")
+    (version "4.13.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+               (url "https://github.com/Ultimaker/CuraEngine")
+               (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xp2r0m5wwfsh9wdb3biqzvfqfz5jsmyw4bww93aksw0rgli07bp"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     (list googletest pkg-config))
+    (inputs
+     (list libarcus protobuf stb-image))
+    (arguments
+     `(#:configure-flags '("-DBUILD_TESTS=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "../source/cmake/FindStb.cmake"
+               (("/usr/include")
+                (string-append (assoc-ref inputs "stb-image")
+                               "/include"))
+               (("stb/stb_image_resize.h")
+                "stb_image.h"))
+             (substitute*
+                 "../source/src/infill/ImageBasedDensityProvider.cpp"
+               (("stb/stb_image.h")
+                "stb_image.h")))))))
+    (home-page "https://github.com/Ultimaker/CuraEngine")
+    (synopsis "Cura slicing engine")
+    (description "CuraEngine is a powerful, fast and robust engine for
+processing 3D models into 3D printing instruction for Ultimaker and other
+GCode based 3D printers.  It is part of the larger open source project called
+Cura.")
+    (license license:agpl3+)))