Преглед изворни кода

Merge topic 'FindOpenMP-CUDA-Clang'

a4b60d948d FindOpenMP: Add support for CUDA when compiling with Clang

Acked-by: Kitware Robot <[email protected]>
Merge-request: !9886
Brad King пре 1 година
родитељ
комит
51eb713098

+ 2 - 0
.gitlab/ci/configure_cuda12.2_clang.cmake

@@ -1,4 +1,6 @@
 set(CMake_TEST_CUDA "Clang" CACHE STRING "")
 set(CMake_TEST_CUDA "Clang" CACHE STRING "")
 set(CMake_TEST_CUDA_STANDARDS "03;11;14;17;20;23" CACHE STRING "")
 set(CMake_TEST_CUDA_STANDARDS "03;11;14;17;20;23" CACHE STRING "")
+set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_CUDA "ON" CACHE BOOL "")
 
 
 include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
 include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

+ 1 - 2
Help/release/dev/FindOpenMP-CUDA.rst

@@ -1,5 +1,4 @@
 FindOpenMP-CUDA
 FindOpenMP-CUDA
 ---------------
 ---------------
 
 
-* The :module:`FindOpenMP` module gained support for ``CUDA`` when using
-  a CUDA compiler that supports OpenMP on the host.
+* The :module:`FindOpenMP` module gained support for the ``CUDA`` language.

+ 3 - 5
Modules/FindOpenMP.cmake

@@ -183,12 +183,10 @@ set(OpenMP_C_CXX_TEST_SOURCE
 int main(void) {
 int main(void) {
 #ifdef _OPENMP
 #ifdef _OPENMP
   omp_get_max_threads();
   omp_get_max_threads();
-  return 0;
-#elif defined(__HIP_DEVICE_COMPILE__)
-  return 0;
-#else
-  breaks_on_purpose
+#elif !defined(__CUDA_ARCH__) && !defined(__HIP_DEVICE_COMPILE__)
+#  error \"_OPENMP not defined!\"
 #endif
 #endif
+  return 0;
 }
 }
 ")
 ")
 
 

+ 1 - 1
Tests/FindOpenMP/Test/main.c

@@ -3,7 +3,7 @@ int main(void)
 {
 {
 #ifdef _OPENMP
 #ifdef _OPENMP
   omp_get_num_threads();
   omp_get_num_threads();
-#else
+#elif !defined(__CUDA_ARCH__) && !defined(__HIP_DEVICE_COMPILE__)
 #  error "_OPENMP not defined!"
 #  error "_OPENMP not defined!"
 #endif
 #endif
   return 0;
   return 0;