FindCUDAToolkit: Support scattered installations when crosscompiling

Previously when CMAKE_CROSSCOMPILING was ON we'd end up not setting the target
directory if the non-scattered one didn't exist.
Fix this by assuming a scattered installation if the target directory isn't set
after the crosscompiling logic.

This is the same fix as commit 2c0d5d01ee (CUDA: Support scattered
installations when crosscompiling with Clang, 2020-09-14).
This commit is contained in:
Raul Tambre
2020-09-20 17:30:35 +03:00
parent 39a5c0c82c
commit 9d3f7872e1
3 changed files with 12 additions and 9 deletions

View File

@@ -1,5 +0,0 @@
cuda-clang-scattered-cross
--------------------------
* Scattered toolkit installations are now recognized when crosscompiling
``CUDA`` using Clang.

View File

@@ -0,0 +1,7 @@
cuda-scattered-cross
--------------------
* Scattered toolkit installations are now recognized when crosscompiling
``CUDA`` using Clang.
* :module:`FindCUDAToolkit` now finds scattered toolkit installations when
crosscompiling.

View File

@@ -668,16 +668,14 @@ else()
unset(_CUDAToolkit_version_file)
endif()
# Handle cross compilation
# Find target directory when crosscompiling.
if(CMAKE_CROSSCOMPILING)
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a")
# Support for NVPACK
set(CUDAToolkit_TARGET_NAME "armv7-linux-androideabi")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
# Support for arm cross compilation
set(CUDAToolkit_TARGET_NAME "armv7-linux-gnueabihf")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
# Support for aarch64 cross compilation
if(ANDROID_ARCH_NAME STREQUAL "arm64")
set(CUDAToolkit_TARGET_NAME "aarch64-linux-androideabi")
else()
@@ -698,7 +696,10 @@ if(CMAKE_CROSSCOMPILING)
# PATh
set(_CUDAToolkit_Pop_ROOT_PATH True)
endif()
else()
endif()
# If not already set we can simply use the toolkit root or it's a scattered installation.
if(NOT CUDAToolkit_TARGET_DIR)
# Not cross compiling
set(CUDAToolkit_TARGET_DIR "${CUDAToolkit_ROOT_DIR}")
# Now that we have the real ROOT_DIR, find components inside it.