diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/xgboost/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/xgboost/default.nix | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/nixpkgs/pkgs/development/libraries/xgboost/default.nix b/nixpkgs/pkgs/development/libraries/xgboost/default.nix index 973e7dc028e0..26872565de8f 100644 --- a/nixpkgs/pkgs/development/libraries/xgboost/default.nix +++ b/nixpkgs/pkgs/development/libraries/xgboost/default.nix @@ -1,6 +1,14 @@ -{ config, stdenv, lib, fetchgit, cmake -, cudaSupport ? config.cudaSupport or false, cudatoolkit -, ncclSupport ? false, nccl +{ config +, stdenv +, lib +, fetchFromGitHub +, cmake +, gtest +, doCheck ? true +, cudaSupport ? config.cudaSupport or false +, cudatoolkit +, ncclSupport ? false +, nccl , llvmPackages }: @@ -8,37 +16,43 @@ assert ncclSupport -> cudaSupport; stdenv.mkDerivation rec { pname = "xgboost"; - version = "0.90"; - - # needs submodules - src = fetchgit { - url = "https://github.com/dmlc/xgboost"; - rev = "refs/tags/v${version}"; - sha256 = "1zs15k9crkiq7bnr4gqq53mkn3w8z9dq4nwlavmfcr5xr5gw2pw4"; + version = "1.4.1"; + + src = fetchFromGitHub { + owner = "dmlc"; + repo = pname; + rev = "v${version}"; + fetchSubmodules = true; + sha256 = "12b1417dg8jqyxd72kg5a3xhg5h11vz0k7bkv72mzrv83jvgn5ci"; }; nativeBuildInputs = [ cmake ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp; - buildInputs = lib.optional cudaSupport cudatoolkit + buildInputs = [ gtest ] ++ lib.optional cudaSupport cudatoolkit ++ lib.optional ncclSupport nccl; - cmakeFlags = lib.optionals cudaSupport [ "-DUSE_CUDA=ON" "-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc" ] - ++ lib.optional ncclSupport "-DUSE_NCCL=ON"; + cmakeFlags = lib.optionals doCheck [ "-DGOOGLE_TEST=ON" ] + ++ lib.optionals cudaSupport [ "-DUSE_CUDA=ON" "-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc" ] + ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ]; + + inherit doCheck; installPhase = let libname = "libxgboost${stdenv.hostPlatform.extensions.sharedLibrary}"; in '' + runHook preInstall mkdir -p $out cp -r ../include $out install -Dm755 ../lib/${libname} $out/lib/${libname} install -Dm755 ../xgboost $out/bin/xgboost + runHook postInstall ''; meta = with lib; { description = "Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library"; homepage = "https://github.com/dmlc/xgboost"; license = licenses.asl20; - platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ]; + platforms = platforms.unix; maintainers = with maintainers; [ abbradar ]; }; } |