|
|
|
@ -619,6 +619,8 @@ if(DEFINED CUDA_TARGET_CPU_ARCH) |
|
|
|
|
set(_cuda_target_cpu_arch_initial "${CUDA_TARGET_CPU_ARCH}") |
|
|
|
|
elseif(CUDA_VERSION VERSION_GREATER "5.0" AND CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|ARM)") |
|
|
|
|
set(_cuda_target_cpu_arch_initial "ARM") |
|
|
|
|
elseif(CUDA_VERSION VERSION_GREATER "6.5" AND CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|AARCH64)") |
|
|
|
|
set(_cuda_target_cpu_arch_initial "AARCH64") |
|
|
|
|
else() |
|
|
|
|
set(_cuda_target_cpu_arch_initial "") |
|
|
|
|
endif() |
|
|
|
@ -643,6 +645,12 @@ elseif(CUDA_VERSION VERSION_GREATER "5.0" AND CMAKE_CROSSCOMPILING AND "${CUDA_T |
|
|
|
|
elseif(EXISTS "${CUDA_TOOLKIT_ROOT_DIR}/targets/armv7-linux-gnueabihf") |
|
|
|
|
set(_cuda_target_triplet_initial "armv7-linux-gnueabihf") |
|
|
|
|
endif() |
|
|
|
|
elseif(CUDA_VERSION VERSION_GREATER "6.5" AND CMAKE_CROSSCOMPILING AND "${CUDA_TARGET_CPU_ARCH}" STREQUAL "AARCH64") |
|
|
|
|
if("${CUDA_TARGET_OS_VARIANT}" STREQUAL "Android" AND EXISTS "${CUDA_TOOLKIT_ROOT_DIR}/targets/aarch64-linux-androideabi") |
|
|
|
|
set(_cuda_target_triplet_initial "aarch64-linux-androideabi") |
|
|
|
|
elseif(EXISTS "${CUDA_TOOLKIT_ROOT_DIR}/targets/aarch64-linux-gnueabihf") |
|
|
|
|
set(_cuda_target_triplet_initial "aarch64-linux-gnueabihf") |
|
|
|
|
endif() |
|
|
|
|
endif() |
|
|
|
|
set(CUDA_TARGET_TRIPLET "${_cuda_target_triplet_initial}" CACHE STRING "Specify the target triplet for which the input files must be compiled.") |
|
|
|
|
file(GLOB __cuda_available_target_tiplets RELATIVE "${CUDA_TOOLKIT_ROOT_DIR}/targets" "${CUDA_TOOLKIT_ROOT_DIR}/targets/*" ) |
|
|
|
@ -1094,8 +1102,10 @@ macro(CUDA_WRAP_SRCS cuda_target format generated_files) |
|
|
|
|
set(nvcc_flags ${nvcc_flags} -m32) |
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
if(CUDA_TARGET_CPU_ARCH) |
|
|
|
|
set(nvcc_flags ${nvcc_flags} "--target-cpu-architecture=${CUDA_TARGET_CPU_ARCH}") |
|
|
|
|
if(CUDA_TARGET_CPU_ARCH AND CUDA_VERSION VERSION_LESS "7.0") |
|
|
|
|
# CPU architecture is either ARM or X86. Patch AARCH64 to be ARM |
|
|
|
|
string(REPLACE "AARCH64" "ARM" CUDA_TARGET_CPU_ARCH_patched ${CUDA_TARGET_CPU_ARCH}) |
|
|
|
|
set(nvcc_flags ${nvcc_flags} "--target-cpu-architecture=${CUDA_TARGET_CPU_ARCH_patched}") |
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
if(CUDA_TARGET_OS_VARIANT AND CUDA_VERSION VERSION_LESS "7.0") |
|
|
|
|