1{ lib
2, stdenv
3, fetchPypi
4, buildPythonPackage
5, Mako
6, pytest
7, numpy
8, cffi
9, pytools
10, decorator
11, appdirs
12, six
13, opencl-headers
14, ocl-icd
15, pybind11
16, mesa_drivers
17}:
18
19let
20 os-specific-buildInputs =
21 if stdenv.isDarwin then [ mesa_drivers.dev ] else [ ocl-icd ];
22in buildPythonPackage rec {
23 pname = "pyopencl";
24 version = "2021.2.9";
25
26 checkInputs = [ pytest ];
27 buildInputs = [ opencl-headers pybind11 ] ++ os-specific-buildInputs;
28
29 propagatedBuildInputs = [ numpy cffi pytools decorator appdirs six Mako ];
30
31 src = fetchPypi {
32 inherit pname version;
33 sha256 = "51425e65ec49c738eefe21b1eeb1f39245b01cc0ddfd495fbe1f8df33dbc6c9e";
34 };
35
36 # py.test is not needed during runtime, so remove it from `install_requires`
37 postPatch = ''
38 substituteInPlace setup.py --replace "pytest>=2" ""
39 '';
40
41 preBuild = ''
42 export HOME=$(mktemp -d)
43 '';
44
45 # gcc: error: pygpu_language_opencl.cpp: No such file or directory
46 doCheck = false;
47
48 meta = with lib; {
49 description = "Python wrapper for OpenCL";
50 homepage = "https://github.com/pyopencl/pyopencl";
51 license = licenses.mit;
52 maintainers = [ maintainers.fridh ];
53 };
54}