mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-15 22:35:33 -05:00
CUDA: Store CMAKE_CUDA_HOST_COMPILER as an absolute path
Isolate its selection from later changes to `PATH`. Fixes: #26942 Co-authored-by: Brad King <brad.king@kitware.com>
This commit is contained in:
committed by
Brad King
parent
85cd454c91
commit
fdb8f0f588
@@ -49,6 +49,29 @@ else()
|
|||||||
if(NOT EXISTS ${CMAKE_CUDA_HOST_COMPILER})
|
if(NOT EXISTS ${CMAKE_CUDA_HOST_COMPILER})
|
||||||
message(FATAL_ERROR "Could not find compiler set in environment variable CUDAHOSTCXX:\n$ENV{CUDAHOSTCXX}.\n${CMAKE_CUDA_HOST_COMPILER}")
|
message(FATAL_ERROR "Could not find compiler set in environment variable CUDAHOSTCXX:\n$ENV{CUDAHOSTCXX}.\n${CMAKE_CUDA_HOST_COMPILER}")
|
||||||
endif()
|
endif()
|
||||||
|
elseif(CMAKE_CUDA_HOST_COMPILER)
|
||||||
|
# We get here if CMAKE_CUDA_HOST_COMPILER was specified by the user or toolchain file.
|
||||||
|
if(IS_ABSOLUTE "${CMAKE_CUDA_HOST_COMPILER}")
|
||||||
|
# Convert to forward slashes.
|
||||||
|
cmake_path(CONVERT "${CMAKE_CUDA_HOST_COMPILER}" TO_CMAKE_PATH_LIST CMAKE_CUDA_HOST_COMPILER NORMALIZE)
|
||||||
|
else()
|
||||||
|
# Convert to absolute path so changes in `PATH` do not impact CUDA compilation.
|
||||||
|
find_program(_CMAKE_CUDA_HOST_COMPILER_PATH NO_CACHE NAMES "${CMAKE_CUDA_HOST_COMPILER}")
|
||||||
|
if(_CMAKE_CUDA_HOST_COMPILER_PATH)
|
||||||
|
set(CMAKE_CUDA_HOST_COMPILER "${_CMAKE_CUDA_HOST_COMPILER_PATH}")
|
||||||
|
endif()
|
||||||
|
unset(_CMAKE_CUDA_HOST_COMPILER_PATH)
|
||||||
|
endif()
|
||||||
|
if(NOT EXISTS "${CMAKE_CUDA_HOST_COMPILER}")
|
||||||
|
message(FATAL_ERROR "Could not find compiler set in variable CMAKE_CUDA_HOST_COMPILER:\n ${CMAKE_CUDA_HOST_COMPILER}")
|
||||||
|
endif()
|
||||||
|
# If the value was cached, update the cache entry with our modifications.
|
||||||
|
get_property(_CMAKE_CUDA_HOST_COMPILER_CACHED CACHE CMAKE_CUDA_HOST_COMPILER PROPERTY TYPE)
|
||||||
|
if(_CMAKE_CUDA_HOST_COMPILER_CACHED)
|
||||||
|
set_property(CACHE CMAKE_CUDA_HOST_COMPILER PROPERTY VALUE "${CMAKE_CUDA_HOST_COMPILER}")
|
||||||
|
mark_as_advanced(CMAKE_CUDA_HOST_COMPILER)
|
||||||
|
endif()
|
||||||
|
unset(_CMAKE_CUDA_HOST_COMPILER_CACHED)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user