xgboost: Enable building on Darwin (#37046)

* xgboost: Enable building on Darwin

* Review feedback: pass `xgboost` to the python package
This commit is contained in:
Andrew Dunham
2018-03-14 18:17:55 -07:00
committed by Nikolay Amiantov
parent 80582c600d
commit 92a77abd31
3 changed files with 44 additions and 26 deletions

View File

@@ -0,0 +1,35 @@
{ stdenv
, lib
, pkgs
, buildPythonPackage
, nose
, scipy
, xgboost
}:
buildPythonPackage rec {
name = "xgboost-${version}";
inherit (xgboost) version src meta;
propagatedBuildInputs = [ scipy ];
checkInputs = [ nose ];
postPatch = let
libname = if stdenv.isDarwin then "libxgboost.dylib" else "libxgboost.so";
in ''
cd python-package
sed "s/CURRENT_DIR = os.path.dirname(__file__)/CURRENT_DIR = os.path.abspath(os.path.dirname(__file__))/g" -i setup.py
sed "/^LIB_PATH.*/a LIB_PATH = [os.path.relpath(LIB_PATH[0], CURRENT_DIR)]" -i setup.py
cat <<EOF >xgboost/libpath.py
def find_lib_path():
return ["${xgboost}/lib/${libname}"]
EOF
'';
postInstall = ''
rm -rf $out/xgboost
'';
}