Skip to content

Commit

Permalink
cuda-modules: refactor appending cmakeFlags in setup hook
Browse files Browse the repository at this point in the history
cudaPackages already builts with structuredAttrs, but the cmakeFlags+=
pattern incorrectly appends the additional flags to the first array
argument with a space - which is now part of that argument itself since
NixOS#318614, which added support for structuredAttrs to cmake.
  • Loading branch information
wolfgangwalther committed Sep 8, 2024
1 parent 96ddeee commit 4153e8f
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions pkgs/development/cuda-modules/setup-hooks/setup-cuda-hook.sh
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@ setupCUDAToolkit_ROOT() {
fi
done

export cmakeFlags+=" -DCUDAToolkit_INCLUDE_DIR=$CUDAToolkit_INCLUDE_DIR -DCUDAToolkit_ROOT=$CUDAToolkit_ROOT"
appendToVar cmakeFlags "-DCUDAToolkit_INCLUDE_DIR=$CUDAToolkit_INCLUDE_DIR"
appendToVar cmakeFlags "-DCUDAToolkit_ROOT=$CUDAToolkit_ROOT"
}
preConfigureHooks+=(setupCUDAToolkit_ROOT)

Expand All @@ -72,8 +73,8 @@ setupCUDAToolkitCompilers() {
# https://cmake.org/cmake/help/latest/envvar/CUDAHOSTCXX.html
# https://cmake.org/cmake/help/latest/variable/CMAKE_CUDA_HOST_COMPILER.html

export cmakeFlags+=" -DCUDA_HOST_COMPILER=@ccFullPath@"
export cmakeFlags+=" -DCMAKE_CUDA_HOST_COMPILER=@ccFullPath@"
appendToVar cmakeFlags "-DCUDA_HOST_COMPILER=@ccFullPath@"
appendToVar cmakeFlags "-DCMAKE_CUDA_HOST_COMPILER=@ccFullPath@"

# For non-CMake projects:
# We prepend --compiler-bindir to nvcc flags.
Expand All @@ -85,7 +86,7 @@ setupCUDAToolkitCompilers() {
export CUDAHOSTCXX="@ccFullPath@";
fi

export NVCC_PREPEND_FLAGS+=" --compiler-bindir=@ccRoot@/bin"
appendToVar NVCC_PREPEND_FLAGS "--compiler-bindir=@ccRoot@/bin"

# NOTE: We set -Xfatbin=-compress-all, which reduces the size of the compiled
# binaries. If binaries grow over 2GB, they will fail to link. This is a problem for us, as
Expand All @@ -94,7 +95,7 @@ setupCUDAToolkitCompilers() {
#
# @SomeoneSerge: original comment was made by @ConnorBaker in .../cudatoolkit/common.nix
if [[ -z "${dontCompressFatbin-}" ]]; then
export NVCC_PREPEND_FLAGS+=" -Xfatbin=-compress-all"
appendToVar NVCC_PREPEND_FLAGS "-Xfatbin=-compress-all"
fi
}
preConfigureHooks+=(setupCUDAToolkitCompilers)
Expand Down

0 comments on commit 4153e8f

Please sign in to comment.