소스 검색

CUDA: Support scattered installations when crosscompiling with Clang

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.
Raul Tambre 5 년 전
부모
커밋
2c0d5d01ee
2개의 변경된 파일10개의 추가작업 그리고 2개의 파일을 삭제
  1. 5 0
      Help/release/dev/cuda-clang-scattered-cross.rst
  2. 5 2
      Modules/CMakeDetermineCUDACompiler.cmake

+ 5 - 0
Help/release/dev/cuda-clang-scattered-cross.rst

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

+ 5 - 2
Modules/CMakeDetermineCUDACompiler.cmake

@@ -300,7 +300,7 @@ elseif(CMAKE_CUDA_COMPILER_ID STREQUAL "Clang")
     endforeach()
   endif()
 
-  # Find target directory. Account for crosscompiling.
+  # Find target directory when crosscompiling.
   if(CMAKE_CROSSCOMPILING)
     if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a")
       # Support for NVPACK
@@ -320,7 +320,10 @@ elseif(CMAKE_CUDA_COMPILER_ID STREQUAL "Clang")
     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()
-  else()
+  endif()
+
+  # If not already set we can simply use the toolkit root or it's a scattered installation.
+  if(NOT _CUDA_TARGET_DIR)
     set(_CUDA_TARGET_DIR "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}")
   endif()