cudatoolkit: Move libcudart to a separate output
This prevents opensubdiv (and thus blender) from having all of cudatoolkit in its closure.
This commit is contained in:
parent
63f3b35204
commit
bb1c9b027d
@ -22,7 +22,7 @@ let
|
|||||||
}
|
}
|
||||||
else throw "cudatoolkit does not support platform ${stdenv.system}";
|
else throw "cudatoolkit does not support platform ${stdenv.system}";
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
outputs = [ "out" "lib" "doc" ];
|
||||||
|
|
||||||
buildInputs = [ perl ];
|
buildInputs = [ perl ];
|
||||||
|
|
||||||
@ -51,7 +51,11 @@ let
|
|||||||
patchelf \
|
patchelf \
|
||||||
--set-interpreter "''$(cat $NIX_CC/nix-support/dynamic-linker)" $i
|
--set-interpreter "''$(cat $NIX_CC/nix-support/dynamic-linker)" $i
|
||||||
fi
|
fi
|
||||||
|
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
|
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
|
patchelf --set-rpath $rpath2 --force-rpath $i
|
||||||
done < <(find . -type f -print0)
|
done < <(find . -type f -print0)
|
||||||
'';
|
'';
|
||||||
@ -80,6 +84,11 @@ let
|
|||||||
mkdir -p $out/nix-support
|
mkdir -p $out/nix-support
|
||||||
echo "cmakeFlags+=' -DCUDA_TOOLKIT_ROOT_DIR=$out'" >> $out/nix-support/setup-hook
|
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.
|
# Remove OpenCL libraries as they are provided by ocl-icd and driver.
|
||||||
rm -f $out/lib64/libOpenCL*
|
rm -f $out/lib64/libOpenCL*
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user