1{ 2 lib, 3 stdenv, 4 fetchPypi, 5 buildPythonPackage, 6 fetchpatch, 7 appdirs, 8 cffi, 9 decorator, 10 mako, 11 mesa_drivers, 12 numpy, 13 ocl-icd, 14 oldest-supported-numpy, 15 opencl-headers, 16 platformdirs, 17 pybind11, 18 pytest, 19 pytestCheckHook, 20 pytools, 21 setuptools, 22 six, 23 wheel, 24}: 25 26let 27 os-specific-buildInputs = if stdenv.isDarwin then [ mesa_drivers.dev ] else [ ocl-icd ]; 28in 29buildPythonPackage rec { 30 pname = "pyopencl"; 31 version = "2024.1"; 32 format = "pyproject"; 33 34 src = fetchPypi { 35 inherit pname version; 36 hash = "sha256-7NVy7pQK2L2hY5w6e+tog0/JqYrX6z9uAarE99nUusE="; 37 }; 38 39 nativeBuildInputs = [ 40 oldest-supported-numpy 41 setuptools 42 wheel 43 ]; 44 45 buildInputs = [ 46 opencl-headers 47 pybind11 48 ] ++ os-specific-buildInputs; 49 50 propagatedBuildInputs = [ 51 appdirs 52 cffi 53 decorator 54 mako 55 numpy 56 platformdirs 57 pytools 58 six 59 ]; 60 61 nativeCheckInputs = [ pytestCheckHook ]; 62 63 preBuild = '' 64 export HOME=$(mktemp -d) 65 ''; 66 67 # gcc: error: pygpu_language_opencl.cpp: No such file or directory 68 doCheck = false; 69 70 pythonImportsCheck = [ "pyopencl" ]; 71 72 meta = with lib; { 73 description = "Python wrapper for OpenCL"; 74 homepage = "https://github.com/pyopencl/pyopencl"; 75 license = licenses.mit; 76 }; 77}