@@ -7,24 +7,26 @@ install(
77 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /tensor-array/core
88 COMPONENT headers)
99
10- include (CheckLanguage )
11-
12- check_language (HIP )
13- if (CMAKE_HIP_COMPILER)
14- unset (CMAKE_HIP_COMPILER CACHE )
15- unset (CMAKE_HIP_HOST_COMPILER CACHE )
16- unset (CMAKE_HIP_PLATFORM CACHE )
10+ execute_process (
11+ COMMAND which hipcc
12+ OUTPUT_VARIABLE WHICH_HIPCC_OUT
13+ RESULT_VARIABLE WHICH_HIPCC_RET
14+ )
15+ if (WHICH_HIPCC_RET EQUAL 0)
1716 enable_language (HIP )
1817 find_package (hip REQUIRED )
1918 # set(CMAKE_CUDA_ARCHITECTURES 52 75 89)
2019 # set(CMAKE_CUDA_SEPARABLE_COMPILATION ON)
2120 # list(APPEND CMAKE_CUDA_FLAGS "--default-stream per-thread")
2221endif ()
2322
24- check_language (CUDA )
25- if (CMAKE_CUDA_COMPILER AND (NOT CMAKE_HIP_COMPILER))
26- unset (CMAKE_CUDA_COMPILER CACHE )
27- unset (CMAKE_CUDA_HOST_COMPILER CACHE )
23+ execute_process (
24+ COMMAND which nvcc
25+ OUTPUT_VARIABLE WHICH_NVCC_OUT
26+ RESULT_VARIABLE WHICH_NVCC_RET
27+ )
28+
29+ if (WHICH_NVCC_RET EQUAL 0 AND NOT WHICH_HIPCC_RET EQUAL 0)
2830 enable_language (CUDA )
2931
3032 find_package (CUDAToolkit REQUIRED )
@@ -35,7 +37,7 @@ endif()
3537
3638file (GLOB TensorArray_src_cc "*.cc" )
3739
38- if (CMAKE_CUDA_COMPILER OR CMAKE_HIP_COMPILER )
40+ if (WHICH_NVCC_RET EQUAL 0 OR WHICH_HIPCC_RET EQUAL 0 )
3941 file (GLOB TensorArray_src_cu "*.cu" )
4042endif ()
4143
@@ -51,7 +53,7 @@ set_property(TARGET tensorarray_core PROPERTY CXX_STANDARD 17)
5153set_property (TARGET tensorarray_core PROPERTY CXX_STANDARD_REQUIRED ON )
5254set_property (TARGET tensorarray_core PROPERTY CXX_EXTENSIONS OFF )
5355
54- if (CMAKE_HIP_COMPILER )
56+ if (WHICH_HIPCC_RET EQUAL 0 )
5557 set_property (TARGET tensorarray_core PROPERTY HIP_STANDARD 17 )
5658 set_property (TARGET tensorarray_core PROPERTY HIP_STANDARD_REQUIRED ON )
5759 set_property (TARGET tensorarray_core PROPERTY HIP_EXTENSIONS OFF )
@@ -61,9 +63,7 @@ if(CMAKE_HIP_COMPILER)
6163 endforeach ()
6264
6365 target_link_libraries (tensorarray_core PRIVATE hip::host hip::device )
64- endif ()
65-
66- if (CMAKE_CUDA_COMPILER)
66+ elif (WHICH_NVCC_RET EQUAL 0 )
6767 set_property (TARGET tensorarray_core PROPERTY CUDA_STANDARD 17 )
6868 set_property (TARGET tensorarray_core PROPERTY CUDA_STANDARD_REQUIRED ON )
6969 set_property (TARGET tensorarray_core PROPERTY CUDA_EXTENSIONS OFF )
0 commit comments