summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2017-09-16 22:37:47 +0200
committerEelco Dolstra <edolstra@gmail.com>2017-09-16 22:45:14 +0200
commitbb1c9b027d343f2ce263496582d6b56af8af92e6 (patch)
tree41f225fcbaaebb404df557e65fcd229d53663398
parent63f3b35204c68b8e2090fef85fc0dbc8e53bc49b (diff)
downloadnixpkgs-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.nix13
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*