diff options
Diffstat (limited to 'pkgs/development/python-modules/islpy/default.nix')
-rw-r--r-- | pkgs/development/python-modules/islpy/default.nix | 76 |
1 files changed, 53 insertions, 23 deletions
diff --git a/pkgs/development/python-modules/islpy/default.nix b/pkgs/development/python-modules/islpy/default.nix index ca84beae2eeff..d111e6b523d27 100644 --- a/pkgs/development/python-modules/islpy/default.nix +++ b/pkgs/development/python-modules/islpy/default.nix @@ -1,41 +1,71 @@ -{ lib -, buildPythonPackage -, fetchPypi -, isl -, pybind11 -, pytestCheckHook -, pythonOlder -, six +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pythonOlder, + + setuptools, + cmake, + nanobind, + ninja, + pcpp, + scikit-build, + isl, + + pytestCheckHook, }: buildPythonPackage rec { pname = "islpy"; - version = "2023.2.5"; - format = "setuptools"; + version = "2024.1"; + pyproject = true; - disabled = pythonOlder "3.6"; + disabled = pythonOlder "3.8"; - src = fetchPypi { - inherit pname version; - sha256 = "sha256-3XQ5i682k4q7fCqdmCjMGi5UnGyASFzsiwaymr+q0Y8="; + src = fetchFromGitHub { + owner = "inducer"; + repo = "islpy"; + rev = "refs/tags/v${version}"; + hash = "sha256-N5XI6V3BvNobCh7NAvtzVejtDMnlcb31S5gseyab1T0="; }; - postConfigure = '' - substituteInPlace setup.py \ - --replace "\"pytest>=2\"," "" + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "setuptools>=42,<64;python_version<'3.12'" "setuptools>=42" ''; - buildInputs = [ isl pybind11 ]; - propagatedBuildInputs = [ six ]; + build-system = [ + setuptools + cmake + nanobind + ninja + pcpp + scikit-build + ]; + + buildInputs = [ isl ]; + + dontUseCmakeConfigure = true; + + preConfigure = '' + python ./configure.py \ + --no-use-shipped-isl \ + --isl-inc-dir=${lib.getDev isl}/include \ + ''; + + # Force resolving the package from $out to make generated ext files usable by tests + preCheck = '' + mv islpy islpy.hidden + ''; - preCheck = "mv islpy islpy.hidden"; nativeCheckInputs = [ pytestCheckHook ]; + pythonImportsCheck = [ "islpy" ]; - meta = with lib; { + meta = { description = "Python wrapper around isl, an integer set library"; homepage = "https://github.com/inducer/islpy"; - license = licenses.mit; - maintainers = [ ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ tomasajt ]; }; } |