diff options
Diffstat (limited to 'pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix')
-rw-r--r-- | pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix b/pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix new file mode 100644 index 0000000000000..6bdcdecbacd6f --- /dev/null +++ b/pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix @@ -0,0 +1,86 @@ +{ + lib, + symlinkJoin, + backendStdenv, + cudaOlder, + cudatoolkit-legacy-runfile, + cudaVersion, + cuda_cccl ? null, + cuda_cudart ? null, + cuda_cuobjdump ? null, + cuda_cupti ? null, + cuda_cuxxfilt ? null, + cuda_gdb ? null, + cuda_nvcc ? null, + cuda_nvdisasm ? null, + cuda_nvml_dev ? null, + cuda_nvprune ? null, + cuda_nvrtc ? null, + cuda_nvtx ? null, + cuda_profiler_api ? null, + cuda_sanitizer_api ? null, + libcublas ? null, + libcufft ? null, + libcurand ? null, + libcusolver ? null, + libcusparse ? null, + libnpp ? null, +}: + +let + getAllOutputs = p: [ + (lib.getBin p) + (lib.getLib p) + (lib.getDev p) + ]; + hostPackages = [ + cuda_cuobjdump + cuda_gdb + cuda_nvcc + cuda_nvdisasm + cuda_nvprune + ]; + targetPackages = [ + cuda_cccl + cuda_cudart + cuda_cupti + cuda_cuxxfilt + cuda_nvml_dev + cuda_nvrtc + cuda_nvtx + cuda_profiler_api + cuda_sanitizer_api + libcublas + libcufft + libcurand + libcusolver + libcusparse + libnpp + ]; + + # This assumes we put `cudatoolkit` in `buildInputs` instead of `nativeBuildInputs`: + allPackages = (map (p: p.__spliced.buildHost or p) hostPackages) ++ targetPackages; +in + +if cudaOlder "11.4" then + cudatoolkit-legacy-runfile +else + symlinkJoin rec { + name = "cuda-merged-${cudaVersion}"; + version = cudaVersion; + + paths = builtins.concatMap getAllOutputs allPackages; + + passthru = { + cc = lib.warn "cudaPackages.cudatoolkit is deprecated, refer to the manual and use splayed packages instead" backendStdenv.cc; + lib = symlinkJoin { + inherit name; + paths = map (p: lib.getLib p) allPackages; + }; + }; + + meta = with lib; { + description = "A wrapper substituting the deprecated runfile-based CUDA installation"; + license = licenses.nvidiaCuda; + }; + } |