cudaPackages.cuda_cudart: patch cuda-XX.Y.pc

This commit is contained in:
Someone Serge 2023-12-22 00:33:55 +00:00
parent dad9c99082
commit cfa07014b6
No known key found for this signature in database
GPG Key ID: 7B0E3B1390D61DA4

View File

@ -1,4 +1,4 @@
{cudaVersion, lib}:
{cudaVersion, lib, addDriverRunpath}:
let
inherit (lib) attrsets lists strings;
# cudaVersionOlder : Version -> Boolean
@ -42,6 +42,20 @@ attrsets.filterAttrs (attr: _: (builtins.hasAttr attr prev)) {
lists.optionals (cudaVersionAtLeast "12.0") [final.libnvjitlink.lib]
);
cuda_cudart = prev.cuda_cudart.overrideAttrs (
prevAttrs: {
# The libcuda stub's pkg-config doesn't follow the general pattern:
postPatch = prevAttrs.postPatch or "" + ''
while IFS= read -r -d $'\0' path ; do
sed -i \
-e "s|^libdir\s*=.*/lib\$|libdir=''${!outputLib}/lib/stubs|" \
-e "s|^Libs\s*:\(.*\)\$|Libs: \1 -Wl,-rpath,${addDriverRunpath.driverLink}/lib|" \
"$path"
done < <(find -iname 'cuda-*.pc' -print0)
'';
});
cuda_compat = prev.cuda_compat.overrideAttrs (
prevAttrs: {
env.autoPatchelfIgnoreMissingDeps =