about summary refs log tree commit diff
path: root/pkgs/applications/graphics/openscad
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/graphics/openscad')
-rw-r--r--pkgs/applications/graphics/openscad/default.nix26
1 files changed, 21 insertions, 5 deletions
diff --git a/pkgs/applications/graphics/openscad/default.nix b/pkgs/applications/graphics/openscad/default.nix
index d72994e008b0b..26e19eec33f8d 100644
--- a/pkgs/applications/graphics/openscad/default.nix
+++ b/pkgs/applications/graphics/openscad/default.nix
@@ -26,12 +26,14 @@
 , mkDerivation
 , qtmacextras
 , qmake
-, spacenavSupport ? stdenv.isLinux, libspnav
+, spacenavSupport ? stdenv.hostPlatform.isLinux, libspnav
 , wayland
 , wayland-protocols
 , wrapGAppsHook3
 , qtwayland
 , cairo
+, openscad
+, runCommand
 }:
 
 mkDerivation rec {
@@ -64,12 +66,16 @@ mkDerivation rec {
     eigen boost glew opencsg cgal_4 mpfr gmp glib
     harfbuzz lib3mf libzip double-conversion freetype fontconfig
     qtbase qtmultimedia qscintilla cairo
-  ] ++ lib.optionals stdenv.isLinux [ libGLU libGL wayland wayland-protocols qtwayland ]
-    ++ lib.optional stdenv.isDarwin qtmacextras
+  ] ++ lib.optionals stdenv.hostPlatform.isLinux [ libGLU libGL wayland wayland-protocols qtwayland ]
+    ++ lib.optional stdenv.hostPlatform.isDarwin qtmacextras
     ++ lib.optional spacenavSupport libspnav
   ;
 
-  qmakeFlags = [ "VERSION=${version}" ] ++
+  qmakeFlags = [
+    "VERSION=${version}"
+    "LIB3MF_INCLUDEPATH=${lib3mf.dev}/include/lib3mf/Bindings/Cpp"
+    "LIB3MF_LIBPATH=${lib3mf}/lib"
+  ] ++
     lib.optionals spacenavSupport [
       "ENABLE_SPNAV=1"
       "SPNAV_INCLUDEPATH=${libspnav}/include"
@@ -82,7 +88,7 @@ mkDerivation rec {
     make objects/parser.cxx
   '';
 
-  postInstall = lib.optionalString stdenv.isDarwin ''
+  postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
     mkdir $out/Applications
     mv $out/bin/*.app $out/Applications
     rmdir $out/bin || true
@@ -112,4 +118,14 @@ mkDerivation rec {
     maintainers = with lib.maintainers; [ bjornfor raskin gebner ];
     mainProgram = "openscad";
   };
+
+  passthru.tests = {
+    lib3mf_support = runCommand "${pname}-lib3mf-support-test" {
+      nativeBuildInputs = [ openscad ];
+    } ''
+      echo "cube([1, 1, 1]);" | openscad -o cube.3mf -
+      echo "import(\"cube.3mf\");" | openscad -o cube-import.3mf -
+      mv cube-import.3mf $out
+    '';
+  };
 }