|
@@ -171,24 +171,32 @@ if(CMAKE_CUDA_COMPILER_ID STREQUAL "Clang")
|
|
|
|
|
|
|
|
# Find target directory when crosscompiling.
|
|
# Find target directory when crosscompiling.
|
|
|
if(CMAKE_CROSSCOMPILING)
|
|
if(CMAKE_CROSSCOMPILING)
|
|
|
|
|
+ # Keep in sync with equivalent table in FindCUDAToolkit!
|
|
|
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a")
|
|
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a")
|
|
|
# Support for NVPACK
|
|
# Support for NVPACK
|
|
|
- set(_CUDA_TARGET_NAME "armv7-linux-androideabi")
|
|
|
|
|
|
|
+ set(_CUDA_TARGET_NAMES "armv7-linux-androideabi")
|
|
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
|
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
|
|
|
- set(_CUDA_TARGET_NAME "armv7-linux-gnueabihf")
|
|
|
|
|
|
|
+ set(_CUDA_TARGET_NAMES "armv7-linux-gnueabihf")
|
|
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
|
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
|
|
|
if(ANDROID_ARCH_NAME STREQUAL "arm64")
|
|
if(ANDROID_ARCH_NAME STREQUAL "arm64")
|
|
|
- set(_CUDA_TARGET_NAME "aarch64-linux-androideabi")
|
|
|
|
|
|
|
+ set(_CUDA_TARGET_NAMES "aarch64-linux-androideabi")
|
|
|
|
|
+ elseif (CMAKE_SYSTEM_NAME STREQUAL "QNX")
|
|
|
|
|
+ set(_CUDA_TARGET_NAMES "aarch64-qnx")
|
|
|
else()
|
|
else()
|
|
|
- set(_CUDA_TARGET_NAME "aarch64-linux")
|
|
|
|
|
|
|
+ set(_CUDA_TARGET_NAMES "aarch64-linux" "sbsa-linux")
|
|
|
endif()
|
|
endif()
|
|
|
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
|
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
|
|
- set(_CUDA_TARGET_NAME "x86_64-linux")
|
|
|
|
|
|
|
+ set(_CUDA_TARGET_NAMES "x86_64-linux")
|
|
|
endif()
|
|
endif()
|
|
|
|
|
|
|
|
- if(EXISTS "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/targets/${_CUDA_TARGET_NAME}")
|
|
|
|
|
- set(_CUDA_TARGET_DIR "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/targets/${_CUDA_TARGET_NAME}")
|
|
|
|
|
- endif()
|
|
|
|
|
|
|
+ foreach(_CUDA_TARGET_NAME IN LISTS _CUDA_TARGET_NAMES)
|
|
|
|
|
+ if(EXISTS "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/targets/${_CUDA_TARGET_NAME}")
|
|
|
|
|
+ set(_CUDA_TARGET_DIR "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/targets/${_CUDA_TARGET_NAME}")
|
|
|
|
|
+ break()
|
|
|
|
|
+ endif()
|
|
|
|
|
+ endforeach()
|
|
|
|
|
+ unset(_CUDA_TARGET_NAME)
|
|
|
|
|
+ unset(_CUDA_TARGET_NAMES)
|
|
|
endif()
|
|
endif()
|
|
|
|
|
|
|
|
# If not already set we can simply use the toolkit root or it's a scattered installation.
|
|
# If not already set we can simply use the toolkit root or it's a scattered installation.
|
|
@@ -227,7 +235,6 @@ if(CMAKE_CUDA_COMPILER_ID STREQUAL "Clang")
|
|
|
unset(_CUDA_INCLUDE_DIR)
|
|
unset(_CUDA_INCLUDE_DIR)
|
|
|
unset(_CUDA_LIBRARY_DIR)
|
|
unset(_CUDA_LIBRARY_DIR)
|
|
|
unset(_CUDA_TARGET_DIR)
|
|
unset(_CUDA_TARGET_DIR)
|
|
|
- unset(_CUDA_TARGET_NAME)
|
|
|
|
|
elseif(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
|
|
elseif(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
|
|
|
include(Internal/CMakeNVCCParseImplicitInfo)
|
|
include(Internal/CMakeNVCCParseImplicitInfo)
|
|
|
# Parse CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT to get:
|
|
# Parse CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT to get:
|