python311Packages.lightgbm: fix build on linux and with cuda

This commit is contained in:
natsukium
2023-12-30 16:55:46 +09:00
parent 413b4dddcf
commit e712a04790
@@ -1,4 +1,5 @@
{ lib
, config
, stdenv
, buildPythonPackage
, fetchPypi
@@ -19,12 +20,16 @@
# optionals: gpu
, boost
, cudatoolkit
, ocl-icd
, opencl-headers
, gpuSupport ? stdenv.isLinux
, gpuSupport ? stdenv.isLinux && !cudaSupport
, cudaSupport ? config.cudaSupport
, cudaPackages
}:
assert gpuSupport -> cudaSupport != true;
assert cudaSupport -> gpuSupport != true;
buildPythonPackage rec {
pname = "lightgbm";
version = "4.1.0";
@@ -43,6 +48,8 @@ buildPythonPackage rec {
pathspec
pyproject-metadata
scikit-build-core
] ++ lib.optionals cudaSupport [
cudaPackages.cuda_nvcc
];
dontUseCmakeConfigure = true;
@@ -51,10 +58,12 @@ buildPythonPackage rec {
llvmPackages.openmp
]) ++ (lib.optionals gpuSupport [
boost
cudatoolkit
ocl-icd
opencl-headers
]);
]) ++ lib.optionals cudaSupport [
cudaPackages.cuda_nvcc
cudaPackages.cuda_cudart
];
propagatedBuildInputs = [
numpy
@@ -62,7 +71,11 @@ buildPythonPackage rec {
scikit-learn
];
pypaBuildFlags = lib.optionalString gpuSupport "--config-setting=cmake.define.USE_CUDA=ON";
pypaBuildFlags = lib.optionals gpuSupport [
"--config-setting=cmake.define.USE_GPU=ON"
] ++ lib.optionals cudaSupport [
"--config-setting=cmake.define.USE_CUDA=ON"
];
postConfigure = ''
export HOME=$(mktemp -d)