diff options
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/lightgbm/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/python-modules/lightgbm/default.nix | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix b/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix new file mode 100644 index 000000000000..10dbcafd04bc --- /dev/null +++ b/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix @@ -0,0 +1,60 @@ +{ stdenv +, buildPythonPackage +, fetchPypi +, cmake +, numpy +, scipy +, scikitlearn +, llvmPackages ? null +}: + +buildPythonPackage rec { + pname = "lightgbm"; + version = "2.2.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "40354d21da6bfa73c7ada4d01b2e0b22eaae00f93e90bdaf3fc423020c273890"; + }; + + nativeBuildInputs = [ + cmake + ]; + + # we never actually explicitly call the install command so this is the only way + # to inject these options to it - however, openmp-library doesn't appear to have + # any effect, so we have to inject it into NIX_LDFLAGS manually below + postPatch = stdenv.lib.optionalString stdenv.cc.isClang '' + cat >> setup.cfg <<EOF + + [install] + openmp-include-dir=${llvmPackages.openmp}/include + openmp-library=${llvmPackages.openmp}/lib/libomp.dylib + + EOF + ''; + + propagatedBuildInputs = [ + numpy + scipy + scikitlearn + ]; + + postConfigure = '' + export HOME=$(mktemp -d) + '' + stdenv.lib.optionalString stdenv.cc.isClang '' + export NIX_LDFLAGS="$NIX_LDFLAGS -L${llvmPackages.openmp}/lib -lomp" + ''; + + # The pypi package doesn't distribute the tests from the GitHub + # repository. It contains c++ tests which don't seem to wired up to + # `make check`. + doCheck = false; + + meta = with stdenv.lib; { + description = "A fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework"; + homepage = https://github.com/Microsoft/LightGBM; + license = licenses.mit; + maintainers = with maintainers; [ teh costrouc ]; + }; +} |