about summary refs log tree commit diff
path: root/pkgs/by-name/op/openscad-unstable/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/op/openscad-unstable/package.nix')
-rw-r--r--pkgs/by-name/op/openscad-unstable/package.nix78
1 files changed, 23 insertions, 55 deletions
diff --git a/pkgs/by-name/op/openscad-unstable/package.nix b/pkgs/by-name/op/openscad-unstable/package.nix
index 1e14580b42bb5..4d584318c64a7 100644
--- a/pkgs/by-name/op/openscad-unstable/package.nix
+++ b/pkgs/by-name/op/openscad-unstable/package.nix
@@ -28,6 +28,7 @@
 , libsForQt5
 , libspnav
 , libzip
+, manifold
 , mesa
 , mpfr
 , python3
@@ -36,60 +37,23 @@
 , wayland-protocols
 , wrapGAppsHook3
 , xorg
+, mimalloc
+, opencsg
 }:
-let
-  # get cccl from source to avoid license issues
-  nvidia-cccl = clangStdenv.mkDerivation {
-    pname = "nvidia-cccl";
-    # note that v2.2.0 has some cmake issues
-    version = "2.2.0-unstable-2024-01-26";
-    src = fetchFromGitHub {
-      owner = "NVIDIA";
-      repo = "cccl";
-      fetchSubmodules = true;
-      rev = "0c9d03276206a5f59368e908e3d643610f9fddcd";
-      hash = "sha256-f11CNfa8jF9VbzvOoX1vT8zGIJL9cZ/VBpiklUn0YdU=";
-    };
-    nativeBuildInputs = [ cmake pkg-config ];
-    buildInputs = [ tbb_2021_11 ];
-    cmakeFlags = [
-      # only enable what we need
-      "-DCCCL_ENABLE_CUB=OFF"
-      "-DCCCL_ENABLE_LIBCUDACXX=ON"
-      "-DCCCL_ENABLE_THRUST=ON"
-      "-DCCCL_ENABLE_TESTING=OFF"
-      "-DCCCL_ENABLE_EXAMPLES=OFF"
-
-      "-DTHRUST_DEVICE_SYSTEM=TBB"
-      "-DTHRUST_HOST_SYSTEM=CPP"
-      "-DTHRUST_ENABLE_HEADER_TESTING=OFF"
-      "-DTHRUST_ENABLE_TESTING=OFF"
-      "-DTHRUST_ENABLE_EXAMPLES=OFF"
-
-      "-DLIBCUDACXX_ENABLE_CUDA=OFF"
-      "-DLIBCUDACXX_ENABLE_STATIC_LIBRARY=OFF"
-      "-DLIBCUDACXX_ENABLE_LIBCUDACXX_TESTS=OFF"
-    ];
-    meta = with lib; {
-      description = "CUDA C++ Core Libraries";
-      homepage = "https://github.com/NVIDIA/cccl";
-      license = licenses.asl20;
-      platforms = platforms.unix;
-    };
-  };
-in
 # clang consume much less RAM than GCC
 clangStdenv.mkDerivation rec {
   pname = "openscad-unstable";
-  version = "2024-03-10";
+  version = "2024-10-06";
   src = fetchFromGitHub {
     owner = "openscad";
     repo = "openscad";
-    rev = "db167b1df31fbd8a2101cf3a13dac148b0c2165d";
-    hash = "sha256-i2ZGYsNfMLDi3wRd/lohs9BuO2KuQ/7kJIXGtV65OQU=";
-    fetchSubmodules = true;
+    rev = "4e4543d85dfb19630ffe499b75828d48d246bd22";
+    hash = "sha256-k1RjXwjigQAVKUHeAJAyJxfCr8qNkCDFq9p78sudjgs=";
+    fetchSubmodules = true;  # Only really need sanitizers-cmake and MCAD
   };
+
   patches = [ ./test.diff ];
+
   nativeBuildInputs = [
     (python3.withPackages (ps: with ps; [ numpy pillow ]))
     bison
@@ -102,12 +66,10 @@ clangStdenv.mkDerivation rec {
     pkg-config
   ];
   buildInputs = with libsForQt5; with qt5; [
-    # manifold dependencies
     clipper2
     glm
     tbb_2021_11
-    nvidia-cccl
-
+    mimalloc
     boost
     cairo
     cgal_5
@@ -118,17 +80,19 @@ clangStdenv.mkDerivation rec {
     ghostscript
     glib
     gmp
+    opencsg
     harfbuzz
     hidapi
     lib3mf
     libspnav
     libzip
+    manifold
     mpfr
     qscintilla
     qtbase
     qtmultimedia
   ]
-  ++ lib.optionals clangStdenv.isLinux [
+  ++ lib.optionals clangStdenv.hostPlatform.isLinux [
     xorg.libXdmcp
     libICE
     libSM
@@ -137,23 +101,27 @@ clangStdenv.mkDerivation rec {
     qtwayland
     libGLU
   ]
-  ++ lib.optional clangStdenv.isDarwin qtmacextras
+  ++ lib.optional clangStdenv.hostPlatform.isDarwin qtmacextras
   ;
   cmakeFlags = [
     "-DEXPERIMENTAL=ON" # enable experimental options
     "-DSNAPSHOT=ON" # nightly icons
-    "-DUSE_BUILTIN_OPENCSG=ON" # bundled latest opencsg
+    "-DUSE_BUILTIN_OPENCSG=OFF"
+    "-DUSE_BUILTIN_MANIFOLD=OFF"
     "-DOPENSCAD_VERSION=\"${builtins.replaceStrings ["-"] ["."] version}\""
-    "-DCMAKE_UNITY_BUILD=ON" # faster build
+    "-DCMAKE_UNITY_BUILD=OFF" # broken compile with unity
     # IPO
     "-DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld"
     "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON"
   ];
+
   doCheck = true;
+
+  nativeCheckInputs = [
+    mesa.llvmpipeHook
+  ];
+
   checkPhase = ''
-    # for running mesa llvmpipe
-    export __EGL_VENDOR_LIBRARY_FILENAMES=${mesa.drivers}/share/glvnd/egl_vendor.d/50_mesa.json
-    export LIBGL_DRIVERS_PATH=${mesa.drivers}/lib:${mesa.drivers}/lib/dri
     # some fontconfig issues cause pdf output to have wrong font
     ctest -j$NIX_BUILD_CORES -E pdfexporttest.\*
   '';