depot/third_party/nixpkgs/pkgs/development/python-modules/manifold3d/default.nix
Default email 472aeafc57 Project import generated by Copybara.
GitOrigin-RevId: c31898adf5a8ed202ce5bea9f347b1c6871f32d1
2024-10-04 18:56:33 +02:00

86 lines
1.5 KiB
Nix

{
lib,
buildPythonPackage,
python,
fetchFromGitHub,
scikit-build-core,
cmake,
ninja,
nanobind,
pkg-config,
numpy,
clipper2,
tbb,
glm,
pytestCheckHook,
trimesh,
}:
let
# archived library, but manifold3d has removed this on master
thrust-src = fetchFromGitHub {
owner = "NVIDIA";
repo = "thrust";
rev = "refs/tags/2.1.0";
hash = "sha256-U9WgRZva7R/bNOF5VZTvIwIQDQDD3/bRO08j2TPLl9Q=";
fetchSubmodules = true;
};
in
buildPythonPackage rec {
pname = "manifold3d";
version = "2.5.1";
pyproject = true;
src = fetchFromGitHub {
owner = "elalish";
repo = "manifold";
rev = "refs/tags/v${version}";
hash = "sha256-0zjS4ygt85isP1jyiTCeD/umhQ8ffIN+u2CeLeybX9U=";
fetchSubmodules = true;
};
dontUseCmakeConfigure = true;
build-system = [
scikit-build-core
cmake
ninja
nanobind
pkg-config
];
dependencies = [
numpy
];
buildInputs = [
glm
tbb
clipper2
];
env.SKBUILD_CMAKE_DEFINE = "FETCHCONTENT_SOURCE_DIR_THRUST=${thrust-src}";
nativeCheckInputs = [
pytestCheckHook
trimesh
];
preCheck = ''
${python.interpreter} bindings/python/examples/run_all.py
'';
pythonImportsCheck = [
"manifold3d"
];
meta = {
description = "Geometry library for topological robustness";
homepage = "https://github.com/elalish/manifold";
changelog = "https://github.com/elalish/manifold/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ pbsds ];
};
}