tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
0
fork
atom
lol
0
fork
atom
overview
issues
pulls
pipelines
lightgbm: 3.3.5 -> 4.1.0
nviets
2 years ago
90fcaf79
247432f9
+23
-15
1 changed file
expand all
collapse all
unified
split
pkgs
development
libraries
lightgbm
default.nix
+23
-15
pkgs/development/libraries/lightgbm/default.nix
···
1
1
{ config, stdenv, lib, fetchFromGitHub, cmake, gtest, doCheck ? true
2
2
-
, cudaSupport ? config.cudaSupport, openclSupport ? false, mpiSupport ? false, javaWrapper ? false, hdfsSupport ? false
3
3
-
, rLibrary ? false, cudaPackages, opencl-headers, ocl-icd, boost, llvmPackages, openmpi, openjdk, swig, hadoop, R, rPackages }:
2
2
+
, cudaSupport ? config.cudaSupport or false, openclSupport ? false
3
3
+
, mpiSupport ? false, javaWrapper ? false, hdfsSupport ? false, pythonLibrary ? false
4
4
+
, rLibrary ? false, cudaPackages, opencl-headers, ocl-icd, boost
5
5
+
, llvmPackages, openmpi, openjdk, swig, hadoop, R, rPackages, pandoc }:
4
6
5
7
assert doCheck -> mpiSupport != true;
6
8
assert openclSupport -> cudaSupport != true;
···
21
23
# in \
22
24
# rWrapper.override{ packages = [ lgbm ]; }"
23
25
pname = lib.optionalString rLibrary "r-" + pnameBase;
24
24
-
version = "3.3.5";
26
26
+
version = "4.1.0";
25
27
26
28
src = fetchFromGitHub {
27
29
owner = "microsoft";
28
30
repo = pnameBase;
29
31
rev = "v${version}";
30
32
fetchSubmodules = true;
31
31
-
hash = "sha256-QRuBbMVtD5J5ECw+bAp57bWaRc/fATMcTq+AKikhj1I=";
33
33
+
hash = "sha256-AhXe/Mlor/i0y84wI9jVPKSnyVbSyAV52Y4yiNm7yLQ=";
32
34
};
33
35
34
36
nativeBuildInputs = [ cmake ]
···
38
40
++ lib.optionals hdfsSupport [ hadoop ]
39
41
++ lib.optionals (hdfsSupport || javaWrapper) [ openjdk ]
40
42
++ lib.optionals javaWrapper [ swig ]
41
41
-
++ lib.optionals rLibrary [ R ];
43
43
+
++ lib.optionals rLibrary [ R pandoc ];
42
44
43
45
buildInputs = [ gtest ]
44
46
++ lib.optional cudaSupport cudaPackages.cudatoolkit;
45
47
46
48
propagatedBuildInputs = lib.optionals rLibrary [
47
49
rPackages.data_table
50
50
+
rPackages.rmarkdown
48
51
rPackages.jsonlite
49
52
rPackages.Matrix
50
53
rPackages.R6
···
62
65
external_libs/compute/include/boost/compute/cl_ext.hpp \
63
66
--replace "include <OpenCL/" "include <CL/"
64
67
substituteInPlace build_r.R \
68
68
+
--replace "shQuote(normalizePath" "shQuote(type = 'cmd', string = normalizePath" \
65
69
--replace "file.path(getwd(), \"lightgbm_r\")" "'$out/tmp'" \
66
70
--replace \
67
71
"install_args <- c(\"CMD\", \"INSTALL\", \"--no-multiarch\", \"--with-keep.source\", tarball)" \
···
74
78
++ lib.optionals mpiSupport [ "-DUSE_MPI=ON" ]
75
79
++ lib.optionals hdfsSupport [
76
80
"-DUSE_HDFS=ON"
77
77
-
"-DHDFS_LIB=${hadoop}/lib/hadoop-3.3.1/lib/native/libhdfs.so"
78
78
-
"-DHDFS_INCLUDE_DIR=${hadoop}/lib/hadoop-3.3.1/include" ]
79
79
-
++ lib.optionals javaWrapper [ "-DUSE_SWIG=ON" ]
80
80
-
++ lib.optionals rLibrary [ "-D__BUILD_FOR_R=ON" ];
81
81
+
"-DHDFS_LIB=${hadoop}/lib/hadoop-${hadoop.version}/lib/native/libhdfs.so"
82
82
+
"-DHDFS_INCLUDE_DIR=${hadoop}/lib/hadoop-${hadoop.version}/include" ]
83
83
+
++ lib.optionals javaWrapper [
84
84
+
"-DUSE_SWIG=ON"
85
85
+
# RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/
86
86
+
"-DCMAKE_SKIP_BUILD_RPATH=ON" ]
87
87
+
++ lib.optionals rLibrary [ "-D__BUILD_FOR_R=ON" ]
88
88
+
++ lib.optionals pythonLibrary [ "-D__BUILD_FOR_PYTHON=ON" ];
81
89
82
90
configurePhase = lib.optionals rLibrary ''
83
91
export R_LIBS_SITE="$out/library:$R_LIBS_SITE''${R_LIBS_SITE:+:}"
···
98
106
mkdir -p $out/bin
99
107
cp -r ../include $out
100
108
install -Dm755 ../lib_lightgbm.so $out/lib/lib_lightgbm.so
109
109
+
'' + lib.optionalString (!rLibrary && !pythonLibrary) ''
101
110
install -Dm755 ../lightgbm $out/bin/lightgbm
102
111
'' + lib.optionalString javaWrapper ''
103
112
cp -r java $out
104
113
cp -r com $out
105
114
cp -r lightgbmlib.jar $out
106
115
'' + ''
107
107
-
'' + lib.optionalString javaWrapper ''
108
108
-
cp -r java $out
109
109
-
cp -r com $out
110
110
-
cp -r lightgbmlib.jar $out
111
116
'' + lib.optionalString rLibrary ''
112
117
mkdir $out
113
118
mkdir $out/tmp
114
119
mkdir $out/library
115
120
mkdir $out/library/lightgbm
116
121
'' + lib.optionalString (rLibrary && (!openclSupport)) ''
117
117
-
Rscript build_r.R
122
122
+
Rscript build_r.R \
123
123
+
-j$NIX_BUILD_CORES
118
124
rm -rf $out/tmp
119
125
'' + lib.optionalString (rLibrary && openclSupport) ''
120
126
Rscript build_r.R --use-gpu \
121
127
--opencl-library=${ocl-icd}/lib/libOpenCL.so \
122
122
-
--boost-librarydir=${boost}
128
128
+
--opencl-include-dir=${opencl-headers}/include \
129
129
+
--boost-librarydir=${boost} \
130
130
+
-j$NIX_BUILD_CORES
123
131
rm -rf $out/tmp
124
132
'' + ''
125
133
runHook postInstall