1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-19 02:17:27 +08:00

CUDAToolkit: Prefer CUDAToolkit_ROOT over users PATH path

Fixes #27102
This commit is contained in:
Robert Maynard
2025-09-17 14:37:27 -04:00
parent 503ab73ee4
commit aed29e04bc

View File

@@ -663,8 +663,7 @@ else()
PATHS ${possible_nvcc_path} PATHS ${possible_nvcc_path}
) )
endif() endif()
endif() else()
if(NOT CUDAToolkit_SENTINEL_FILE) if(NOT CUDAToolkit_SENTINEL_FILE)
find_program(CUDAToolkit_NVCC_EXECUTABLE find_program(CUDAToolkit_NVCC_EXECUTABLE
NAMES nvcc nvcc.exe NAMES nvcc nvcc.exe
@@ -680,6 +679,7 @@ else()
NO_DEFAULT_PATH NO_DEFAULT_PATH
) )
endif() endif()
endif()
if(EXISTS "${CUDAToolkit_NVCC_EXECUTABLE}") if(EXISTS "${CUDAToolkit_NVCC_EXECUTABLE}")
# If NVCC exists then invoke it to find the toolkit location. # If NVCC exists then invoke it to find the toolkit location.
@@ -819,11 +819,21 @@ else()
mark_as_advanced(CUDAToolkit_BIN_DIR) mark_as_advanced(CUDAToolkit_BIN_DIR)
endif() endif()
# Try user provided path # Try `CMAKE_CUDA_COMPILER` and `ENV{CUDACXX}`
if(NOT CUDAToolkit_ROOT_DIR)
_CUDAToolkit_find_root_dir(COMPILER_PATHS) _CUDAToolkit_find_root_dir(COMPILER_PATHS)
if(NOT CUDAToolkit_ROOT_DIR AND CUDAToolkit_ROOT) endif()
# Try user provided path
if(NOT CUDAToolkit_ROOT_DIR AND DEFINED CUDAToolkit_ROOT)
_CUDAToolkit_find_root_dir(SEARCH_PATHS "${CUDAToolkit_ROOT}" FIND_FLAGS PATH_SUFFIXES bin NO_DEFAULT_PATH) _CUDAToolkit_find_root_dir(SEARCH_PATHS "${CUDAToolkit_ROOT}" FIND_FLAGS PATH_SUFFIXES bin NO_DEFAULT_PATH)
endif() endif()
if(NOT CUDAToolkit_ROOT_DIR AND DEFINED ENV{CUDAToolkit_ROOT})
_CUDAToolkit_find_root_dir(SEARCH_PATHS "$ENV{CUDAToolkit_ROOT}" FIND_FLAGS PATH_SUFFIXES bin NO_DEFAULT_PATH)
endif()
# Try users PATH, and CUDA_PATH env variable
if(NOT CUDAToolkit_ROOT_DIR) if(NOT CUDAToolkit_ROOT_DIR)
_CUDAToolkit_find_root_dir(FIND_FLAGS PATHS ENV CUDA_PATH PATH_SUFFIXES bin) _CUDAToolkit_find_root_dir(FIND_FLAGS PATHS ENV CUDA_PATH PATH_SUFFIXES bin)
endif() endif()