about summary refs log tree commit diff
path: root/pkgs/applications/graphics
diff options
context:
space:
mode:
authorGuilhem Saurel <guilhem.saurel@laas.fr>2024-03-26 15:38:21 +0100
committerSandro Jäckel <sandro.jaeckel@gmail.com>2024-04-20 17:15:29 +0200
commitfc7d8b347a6d3deb8dd765e8bc026cdcaf0eed1f (patch)
tree0952107666400b39250825c5ea5cd831c692bba9 /pkgs/applications/graphics
parent74900367e85e4d7560db2aaf12d5282afc0f12b0 (diff)
pymeshlab: init at 2023.12
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Diffstat (limited to 'pkgs/applications/graphics')
-rw-r--r--pkgs/applications/graphics/pymeshlab/default.nix107
1 files changed, 107 insertions, 0 deletions
diff --git a/pkgs/applications/graphics/pymeshlab/default.nix b/pkgs/applications/graphics/pymeshlab/default.nix
new file mode 100644
index 0000000000000..5bf8339797b42
--- /dev/null
+++ b/pkgs/applications/graphics/pymeshlab/default.nix
@@ -0,0 +1,107 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, libGLU
+, qtbase
+, qtscript
+, qtxmlpatterns
+, lib3ds
+, bzip2
+, muparser
+, eigen
+, glew
+, gmp
+, levmar
+, qhull
+, cmake
+, cgal
+, boost
+, mpfr
+, xercesc
+, tbb
+, embree
+, vcg
+, libigl
+, corto
+, openctm
+, structuresynth
+, wrapQtAppsHook
+, python3Packages
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "pymeshlab";
+  version = "2023.12";
+
+  src = fetchFromGitHub {
+    owner = "cnr-isti-vclab";
+    repo = "pymeshlab";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-IOlRdXoUPOJt67g3HqsLchV5aL+JUEks2y1Sy+wpwsg=";
+    fetchSubmodules = true;
+  };
+
+  buildInputs = [
+    libGLU
+    qtbase
+    qtscript
+    qtxmlpatterns
+    lib3ds
+    bzip2
+    muparser
+    eigen
+    glew
+    gmp
+    levmar
+    qhull
+    cgal
+    boost
+    mpfr
+    xercesc
+    tbb
+    embree
+    vcg
+    libigl
+    corto
+    structuresynth
+    openctm
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    wrapQtAppsHook
+    python3Packages.pybind11
+  ];
+
+  propagatedBuildInputs = [
+    python3Packages.numpy
+  ];
+
+  preConfigure = ''
+    substituteInPlace src/meshlab/src/external/libigl.cmake \
+      --replace-fail '$'{MESHLAB_EXTERNAL_DOWNLOAD_DIR}/libigl-2.4.0 ${libigl}
+    substituteInPlace src/meshlab/src/external/nexus.cmake \
+      --replace-fail '$'{NEXUS_DIR}/src/corto ${corto.src}
+    substituteInPlace src/meshlab/src/external/levmar.cmake \
+      --replace-fail '$'{LEVMAR_LINK} ${levmar.src} \
+      --replace-warn "MD5 ''${LEVMAR_MD5}" ""
+    substituteInPlace src/meshlab/src/external/ssynth.cmake \
+      --replace-fail '$'{SSYNTH_LINK} ${structuresynth.src} \
+      --replace-warn "MD5 ''${SSYNTH_MD5}" ""
+    export cmakeFlags="cmakeFlags
+      -DCMAKE_INSTALL_PREFIX=$out/${python3Packages.python.sitePackages}/pymeshlab
+    "
+  '';
+
+  cmakeFlags = [
+    "-DVCGDIR=${vcg.src}"
+  ];
+
+  meta = {
+    description = "The open source mesh processing python library";
+    homepage = "https://github.com/cnr-isti-vclab/PyMeshLab";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ nim65s ];
+    platforms = with lib.platforms; linux;
+  };
+})