biome: 1.9.2 -> 1.9.3 (#349335)
[NixPkgs.git] / pkgs / development / python-modules / manifold3d / default.nix
blob62852fe60a0ca06b582b761b1dd9d869b8bcd3aa
2   lib,
3   buildPythonPackage,
4   python,
5   fetchFromGitHub,
6   scikit-build-core,
7   cmake,
8   ninja,
9   nanobind,
10   pkg-config,
11   numpy,
12   clipper2,
13   tbb,
14   glm,
15   pytestCheckHook,
16   trimesh,
19 let
20   # archived library, but manifold3d has removed this on master
21   thrust-src = fetchFromGitHub {
22     owner = "NVIDIA";
23     repo = "thrust";
24     rev = "refs/tags/2.1.0";
25     hash = "sha256-U9WgRZva7R/bNOF5VZTvIwIQDQDD3/bRO08j2TPLl9Q=";
26     fetchSubmodules = true;
27   };
31 buildPythonPackage rec {
32   pname = "manifold3d";
33   version = "2.5.1";
34   pyproject = true;
36   src = fetchFromGitHub {
37     owner = "elalish";
38     repo = "manifold";
39     rev = "refs/tags/v${version}";
40     hash = "sha256-0zjS4ygt85isP1jyiTCeD/umhQ8ffIN+u2CeLeybX9U=";
41     fetchSubmodules = true;
42   };
44   dontUseCmakeConfigure = true;
46   build-system = [
47     scikit-build-core
48     cmake
49     ninja
50     nanobind
51     pkg-config
52   ];
54   dependencies = [
55     numpy
56   ];
58   buildInputs = [
59     glm
60     tbb
61     clipper2
62   ];
64   env.SKBUILD_CMAKE_DEFINE = "FETCHCONTENT_SOURCE_DIR_THRUST=${thrust-src}";
66   nativeCheckInputs = [
67     pytestCheckHook
68     trimesh
69   ];
71   preCheck = ''
72     ${python.interpreter} bindings/python/examples/run_all.py
73   '';
75   pythonImportsCheck = [
76     "manifold3d"
77   ];
79   meta = {
80     description = "Geometry library for topological robustness";
81     homepage = "https://github.com/elalish/manifold";
82     changelog = "https://github.com/elalish/manifold/releases/tag/v${version}";
83     license = lib.licenses.asl20;
84     maintainers = with lib.maintainers; [ pbsds ];
85   };