diff --git a/pkgs/development/compilers/cudatoolkit/extension.nix b/pkgs/development/compilers/cudatoolkit/extension.nix index be482e2cc799..d75d288f5577 100644 --- a/pkgs/development/compilers/cudatoolkit/extension.nix +++ b/pkgs/development/compilers/cudatoolkit/extension.nix @@ -69,9 +69,13 @@ final: prev: let # - the cuda_runtime.h header, which is in the dev output # - the dynamic library, which is in the lib output # - the static library, which is in the static output - substitutions.cudartInclude = "${final.cuda_cudart.dev}"; - substitutions.cudartLib = "${final.cuda_cudart.lib}"; - substitutions.cudartStatic = "${final.cuda_cudart.static}"; + substitutions.cudartFlags = let cudart = final.cuda_cudart; in + builtins.concatStringsSep " " (final.lib.optionals (final ? cuda_cudart) ([ + "-I${final.lib.getDev cudart}/include" + "-L${final.lib.getLib cudart}/lib" + ] ++ final.lib.optionals (builtins.elem "static" cudart.outputs) [ + "-L${cudart.static}/lib" + ])); } ./hooks/setup-cuda-hook.sh) { }); diff --git a/pkgs/development/compilers/cudatoolkit/hooks/setup-cuda-hook.sh b/pkgs/development/compilers/cudatoolkit/hooks/setup-cuda-hook.sh index 5ea57594211c..0272e7938b9a 100644 --- a/pkgs/development/compilers/cudatoolkit/hooks/setup-cuda-hook.sh +++ b/pkgs/development/compilers/cudatoolkit/hooks/setup-cuda-hook.sh @@ -55,8 +55,9 @@ setupCUDAToolkitCompilers() { # CMake's enable_language(CUDA) runs a compiler test and it doesn't account for # CUDAToolkit_ROOT. We have to help it locate libcudart - if [[ -z "${nvccDontPrependCudartFlags-}" ]] ; then - export NVCC_APPEND_FLAGS+=" -L@cudartLib@/lib -L@cudartStatic@/lib -I@cudartInclude@/include" + local cudartFlags="@cudartFlags@" + if [[ -z "${nvccDontPrependCudartFlags-}" ]] && [[ -n "${cudartFlags:-}" ]] ; then + export NVCC_APPEND_FLAGS+=" $cudartFlags" fi }