diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2017-09-16 22:37:47 +0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2017-09-16 22:45:14 +0200 |
commit | bb1c9b027d343f2ce263496582d6b56af8af92e6 (patch) | |
tree | 41f225fcbaaebb404df557e65fcd229d53663398 | |
parent | 63f3b35204c68b8e2090fef85fc0dbc8e53bc49b (diff) | |
download | nixpkgs-bb1c9b027d343f2ce263496582d6b56af8af92e6.tar nixpkgs-bb1c9b027d343f2ce263496582d6b56af8af92e6.tar.gz nixpkgs-bb1c9b027d343f2ce263496582d6b56af8af92e6.tar.bz2 nixpkgs-bb1c9b027d343f2ce263496582d6b56af8af92e6.tar.lz nixpkgs-bb1c9b027d343f2ce263496582d6b56af8af92e6.tar.xz nixpkgs-bb1c9b027d343f2ce263496582d6b56af8af92e6.tar.zst nixpkgs-bb1c9b027d343f2ce263496582d6b56af8af92e6.zip |
cudatoolkit: Move libcudart to a separate output
This prevents opensubdiv (and thus blender) from having all of cudatoolkit in its closure.
-rw-r--r-- | pkgs/development/compilers/cudatoolkit/default.nix | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/pkgs/development/compilers/cudatoolkit/default.nix b/pkgs/development/compilers/cudatoolkit/default.nix index 0b219b80447..f6e52a59fe5 100644 --- a/pkgs/development/compilers/cudatoolkit/default.nix +++ b/pkgs/development/compilers/cudatoolkit/default.nix @@ -22,7 +22,7 @@ let } else throw "cudatoolkit does not support platform ${stdenv.system}"; - outputs = [ "out" "doc" ]; + outputs = [ "out" "lib" "doc" ]; buildInputs = [ perl ]; @@ -51,7 +51,11 @@ let patchelf \ --set-interpreter "''$(cat $NIX_CC/nix-support/dynamic-linker)" $i fi - rpath2=$rpath:$lib/lib:$out/jre/lib/amd64/jli:$out/lib:$out/lib64:$out/nvvm/lib:$out/nvvm/lib64 + if [[ $i =~ libcudart ]]; then + rpath2= + else + rpath2=$rpath:$lib/lib:$out/jre/lib/amd64/jli:$out/lib:$out/lib64:$out/nvvm/lib:$out/nvvm/lib64 + fi patchelf --set-rpath $rpath2 --force-rpath $i done < <(find . -type f -print0) ''; @@ -80,6 +84,11 @@ let mkdir -p $out/nix-support echo "cmakeFlags+=' -DCUDA_TOOLKIT_ROOT_DIR=$out'" >> $out/nix-support/setup-hook + # Move some libraries to the lib output so that programs that + # depend on them don't pull in this entire monstrosity. + mkdir -p $lib/lib + mv -v $out/lib64/libcudart* $lib/lib/ + # Remove OpenCL libraries as they are provided by ocl-icd and driver. rm -f $out/lib64/libOpenCL* |