cudaPackages.markForCudatoolkitRootHook: fix bug with strictDeps

The setupCudaHook always checks for the existence of `$prefix/nix-support/include-in-cudatoolkit-root`, so we need to be sure
it always exists. It isn't populated when `strictDeps` is set, but it must exist.
This commit is contained in:
Connor Baker 2024-04-08 21:33:48 +00:00
parent ad2a4e862c
commit 9230c2cc8d
1 changed files with 16 additions and 5 deletions

View File

@ -1,14 +1,25 @@
# shellcheck shell=bash
# Should we mimick cc-wrapper's "hygiene"?
[[ -z ${strictDeps-} ]] || (( "$hostOffset" < 0 )) || return 0
(( ${hostOffset:?} == -1 && ${targetOffset:?} == 0)) || return 0
echo "Sourcing mark-for-cudatoolkit-root-hook" >&2
markForCUDAToolkit_ROOT() {
mkdir -p "${prefix}/nix-support"
[[ -f "${prefix}/nix-support/include-in-cudatoolkit-root" ]] && return 0
echo "$pname-$output" > "${prefix}/nix-support/include-in-cudatoolkit-root"
mkdir -p "${prefix:?}/nix-support"
local markerPath="$prefix/nix-support/include-in-cudatoolkit-root"
# Return early if the file already exists.
[[ -f "$markerPath" ]] && return 0
# Always create the file, even if it's empty, since setup-cuda-hook relies on its existence.
# However, only populate it if strictDeps is not set.
touch "$markerPath"
# Return early if strictDeps is set.
[[ -n "${strictDeps-}" ]] && return 0
# Populate the file with the package name and output.
echo "${pname:?}-${output:?}" > "$markerPath"
}
fixupOutputHooks+=(markForCUDAToolkit_ROOT)