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