Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 buildPythonPackage, 6 7 # build-system 8 cmake, 9 scikit-build-core, 10 pathspec, 11 ninja, 12 nanobind, 13 14 # dependencies 15 appdirs, 16 cffi, 17 darwin, 18 decorator, 19 mako, 20 numpy, 21 ocl-icd, 22 oldest-supported-numpy, 23 opencl-headers, 24 platformdirs, 25 pybind11, 26 pytestCheckHook, 27 pytools, 28 six, 29}: 30 31let 32 os-specific-buildInputs = if stdenv.isDarwin then [ darwin.apple_sdk.frameworks.OpenCL ] else [ ocl-icd ]; 33in 34buildPythonPackage rec { 35 pname = "pyopencl"; 36 version = "2024.2.6"; 37 format = "pyproject"; 38 39 src = fetchFromGitHub { 40 owner = "inducer"; 41 repo = "pyopencl"; 42 rev = "refs/tags/v${version}"; 43 hash = "sha256-nP7ZAGeRXrjqDRWlc2SDP1hk1fseGeu9Zx0lOp9Pchs="; 44 }; 45 46 nativeBuildInputs = [ 47 cmake 48 nanobind 49 ninja 50 numpy 51 oldest-supported-numpy 52 pathspec 53 scikit-build-core 54 ]; 55 56 dontUseCmakeConfigure = true; 57 58 buildInputs = [ 59 opencl-headers 60 pybind11 61 ] ++ os-specific-buildInputs; 62 63 propagatedBuildInputs = [ 64 appdirs 65 cffi 66 decorator 67 mako 68 numpy 69 platformdirs 70 pytools 71 six 72 ]; 73 74 nativeCheckInputs = [ pytestCheckHook ]; 75 76 preBuild = '' 77 export HOME=$(mktemp -d) 78 rm -rf pyopencl 79 ''; 80 81 # gcc: error: pygpu_language_opencl.cpp: No such file or directory 82 doCheck = false; 83 84 pythonImportsCheck = [ "pyopencl" ]; 85 86 meta = with lib; { 87 description = "Python wrapper for OpenCL"; 88 homepage = "https://github.com/pyopencl/pyopencl"; 89 license = licenses.mit; 90 }; 91}