Merge pull request #307254 from TomaSajt/fix-islpy-loopy
python312Packages.{islpy,loopy}: fix build, add missing deps, refactor and adopt
This commit is contained in:
commit
e753fb2413
3 changed files with 93 additions and 46 deletions
|
@ -1,41 +1,71 @@
|
||||||
{ lib
|
{
|
||||||
, buildPythonPackage
|
lib,
|
||||||
, fetchPypi
|
buildPythonPackage,
|
||||||
, isl
|
fetchFromGitHub,
|
||||||
, pybind11
|
pythonOlder,
|
||||||
, pytestCheckHook
|
|
||||||
, pythonOlder
|
setuptools,
|
||||||
, six
|
cmake,
|
||||||
|
nanobind,
|
||||||
|
ninja,
|
||||||
|
pcpp,
|
||||||
|
scikit-build,
|
||||||
|
isl,
|
||||||
|
|
||||||
|
pytestCheckHook,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "islpy";
|
pname = "islpy";
|
||||||
version = "2023.2.5";
|
version = "2023.2.5";
|
||||||
format = "setuptools";
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.6";
|
disabled = pythonOlder "3.8";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchFromGitHub {
|
||||||
inherit pname version;
|
owner = "inducer";
|
||||||
sha256 = "sha256-3XQ5i682k4q7fCqdmCjMGi5UnGyASFzsiwaymr+q0Y8=";
|
repo = "islpy";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-0m41G5HlPrgt4rDY3Y9cKBJGHSnLg/R+IywBO1anRpQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postConfigure = ''
|
postPatch = ''
|
||||||
substituteInPlace setup.py \
|
substituteInPlace pyproject.toml \
|
||||||
--replace "\"pytest>=2\"," ""
|
--replace-fail "setuptools>=42,<64;python_version<'3.12'" "setuptools>=42"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildInputs = [ isl pybind11 ];
|
build-system = [
|
||||||
propagatedBuildInputs = [ six ];
|
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 ];
|
nativeCheckInputs = [ pytestCheckHook ];
|
||||||
|
|
||||||
pythonImportsCheck = [ "islpy" ];
|
pythonImportsCheck = [ "islpy" ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = {
|
||||||
description = "Python wrapper around isl, an integer set library";
|
description = "Python wrapper around isl, an integer set library";
|
||||||
homepage = "https://github.com/inducer/islpy";
|
homepage = "https://github.com/inducer/islpy";
|
||||||
license = licenses.mit;
|
license = lib.licenses.mit;
|
||||||
maintainers = [ ];
|
maintainers = with lib.maintainers; [ tomasajt ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,39 +1,47 @@
|
||||||
{ lib
|
{
|
||||||
, buildPythonPackage
|
lib,
|
||||||
, codepy
|
buildPythonPackage,
|
||||||
, cgen
|
codepy,
|
||||||
, colorama
|
cgen,
|
||||||
, fetchFromGitHub
|
colorama,
|
||||||
, genpy
|
fetchFromGitHub,
|
||||||
, islpy
|
genpy,
|
||||||
, mako
|
immutables,
|
||||||
, numpy
|
islpy,
|
||||||
, pymbolic
|
mako,
|
||||||
, pyopencl
|
numpy,
|
||||||
, pyrsistent
|
pymbolic,
|
||||||
, pythonOlder
|
pyopencl,
|
||||||
, pytools
|
pyrsistent,
|
||||||
|
pythonOlder,
|
||||||
|
pytools,
|
||||||
|
setuptools,
|
||||||
|
typing-extensions,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "loopy";
|
pname = "loopy";
|
||||||
version = "2024.1";
|
version = "2024.1";
|
||||||
format = "setuptools";
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.7";
|
disabled = pythonOlder "3.8";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "inducer";
|
owner = "inducer";
|
||||||
repo = pname;
|
repo = "loopy";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-R0Wry4r8Y7VKqsyrZ3odEOUy4T9di9rFQzq7BD0LG58=";
|
hash = "sha256-mU8vXEPR88QpJpzXZlZdDhMtlwIx5YpeYhXU8Vw2T9g=";
|
||||||
|
fetchSubmodules = true; # submodule at `loopy/target/c/compyte`
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
build-system = [ setuptools ];
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
codepy
|
codepy
|
||||||
cgen
|
cgen
|
||||||
colorama
|
colorama
|
||||||
genpy
|
genpy
|
||||||
|
immutables
|
||||||
islpy
|
islpy
|
||||||
mako
|
mako
|
||||||
numpy
|
numpy
|
||||||
|
@ -41,15 +49,22 @@ buildPythonPackage rec {
|
||||||
pyopencl
|
pyopencl
|
||||||
pyrsistent
|
pyrsistent
|
||||||
pytools
|
pytools
|
||||||
|
typing-extensions
|
||||||
];
|
];
|
||||||
|
|
||||||
|
postConfigure = ''
|
||||||
|
export HOME=$(mktemp -d)
|
||||||
|
'';
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "loopy" ];
|
||||||
|
|
||||||
# pyopencl._cl.LogicError: clGetPlatformIDs failed: PLATFORM_NOT_FOUND_KHR
|
# pyopencl._cl.LogicError: clGetPlatformIDs failed: PLATFORM_NOT_FOUND_KHR
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = {
|
||||||
description = "A code generator for array-based code on CPUs and GPUs";
|
description = "A code generator for array-based code on CPUs and GPUs";
|
||||||
homepage = "https://github.com/inducer/loopy";
|
homepage = "https://github.com/inducer/loopy";
|
||||||
license = licenses.mit;
|
license = lib.licenses.mit;
|
||||||
maintainers = with maintainers; [ ];
|
maintainers = with lib.maintainers; [ tomasajt ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5917,7 +5917,9 @@ self: super: with self; {
|
||||||
|
|
||||||
isbnlib = callPackage ../development/python-modules/isbnlib { };
|
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 { };
|
iso3166 = callPackage ../development/python-modules/iso3166 { };
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue