diff --git a/pkgs/development/python-modules/islpy/default.nix b/pkgs/development/python-modules/islpy/default.nix index ca84beae2eef..83f0b26c0047 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"; + 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 = "v${version}"; + hash = "sha256-0m41G5HlPrgt4rDY3Y9cKBJGHSnLg/R+IywBO1anRpQ="; }; - 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 ]; }; } diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 739e2c577792..5de85c9d7343 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5907,7 +5907,9 @@ self: super: with self; { isbnlib = callPackage ../development/python-modules/isbnlib { }; - islpy = callPackage ../development/python-modules/islpy { }; + islpy = callPackage ../development/python-modules/islpy { + isl = pkgs.isl_0_24; + }; iso3166 = callPackage ../development/python-modules/iso3166 { };