mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-30 17:43:42 +00:00
2bfa93e01c
It won't be enough to fix cross in all cases, but it is in at least one: pywayland. I've only made the change in cases I'm confident it's correct, as it would be wrong to change this when python.interpreter is used in wrappers, and possibly when it's used for running tests.
85 lines
1.7 KiB
Nix
85 lines
1.7 KiB
Nix
{ buildPythonPackage
|
|
, addOpenGLRunpath
|
|
, fetchPypi
|
|
, fetchFromGitHub
|
|
, Mako
|
|
, boost
|
|
, numpy
|
|
, pytools
|
|
, pytest
|
|
, decorator
|
|
, appdirs
|
|
, six
|
|
, cudaPackages
|
|
, python
|
|
, mkDerivation
|
|
, lib
|
|
}:
|
|
let
|
|
compyte = import ./compyte.nix {
|
|
inherit mkDerivation fetchFromGitHub;
|
|
};
|
|
|
|
inherit (cudaPackages) cudatoolkit;
|
|
in
|
|
buildPythonPackage rec {
|
|
pname = "pycuda";
|
|
version = "2022.2.2";
|
|
|
|
src = fetchPypi {
|
|
inherit pname version;
|
|
sha256 = "sha256-zZLnJGu0WsNFKVWhEHFBEmdM3ztKni9P8lpBWcaE5rs=";
|
|
};
|
|
|
|
preConfigure = with lib.versions; ''
|
|
${python.pythonForBuild.interpreter} configure.py --boost-inc-dir=${boost.dev}/include \
|
|
--boost-lib-dir=${boost}/lib \
|
|
--no-use-shipped-boost \
|
|
--boost-python-libname=boost_python${major python.version}${minor python.version} \
|
|
--cuda-root=${cudatoolkit}
|
|
'';
|
|
|
|
postInstall = ''
|
|
ln -s ${compyte} $out/${python.sitePackages}/pycuda/compyte
|
|
'';
|
|
|
|
postFixup = ''
|
|
find $out/lib -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
|
|
echo "setting opengl runpath for $lib..."
|
|
addOpenGLRunpath "$lib"
|
|
done
|
|
'';
|
|
|
|
# Requires access to libcuda.so.1 which is provided by the driver
|
|
doCheck = false;
|
|
|
|
checkPhase = ''
|
|
py.test
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
addOpenGLRunpath
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
numpy
|
|
pytools
|
|
pytest
|
|
decorator
|
|
appdirs
|
|
six
|
|
cudatoolkit
|
|
compyte
|
|
python
|
|
Mako
|
|
];
|
|
|
|
meta = with lib; {
|
|
homepage = "https://github.com/inducer/pycuda/";
|
|
description = "CUDA integration for Python.";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ artuuge ];
|
|
};
|
|
|
|
}
|