Skip to content

Commit 592e45f

Browse files
If no CUDA compiler is found, but the CUDAToolkit is available, use the toolkit's compiler. (#144)
* If no CUDA compiler is found, but the CUDAToolkit is available, use the toolkit's compiler. * make sure CUDA architecture is set to default even if toolkit is not found
1 parent 33492a8 commit 592e45f

1 file changed

Lines changed: 30 additions & 17 deletions

File tree

cmake/CoviseHelperMacros.cmake

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1155,31 +1155,44 @@ MACRO(COVISE_USE_OPENMP target)
11551155
ENDMACRO(COVISE_USE_OPENMP)
11561156

11571157
MACRO(COVISE_FIND_CUDA)
1158-
IF(COVISE_USE_CUDA)
1159-
include(CheckLanguage)
1160-
check_language(CUDA)
1161-
covise_find_package(CUDAToolkit)
1162-
ENDIF(COVISE_USE_CUDA)
1163-
IF((CMAKE_CUDA_COMPILER OR CUDAToolkit_NVCC_EXECUTABLE) AND CUDAToolkit_FOUND AND COVISE_USE_CUDA)
1158+
IF(COVISE_USE_CUDA)
1159+
include(CheckLanguage)
1160+
check_language(CUDA)
1161+
1162+
# If the CUDA toolkit is available, but no CUDA compiler was
1163+
# found, use the compiler from the toolkit, instead.
1164+
covise_find_package(CUDAToolkit)
1165+
if(CUDAToolkit_FOUND)
1166+
if(CUDAToolkit_NVCC_EXECUTABLE AND NOT CMAKE_CUDA_COMPILER)
1167+
set(CMAKE_CUDA_COMPILER
1168+
${CUDAToolkit_NVCC_EXECUTABLE}
1169+
CACHE FILEPATH "CUDA compiler" FORCE)
1170+
endif()
1171+
endif()
1172+
1173+
if(CMAKE_CUDA_COMPILER)
1174+
# make sure CUDA architecture is set
1175+
if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
1176+
if(CUDAToolkit_VERSION_MAJOR GREATER 12)
1177+
set(CMAKE_CUDA_ARCHITECTURES 75)
1178+
else()
1179+
set(CMAKE_CUDA_ARCHITECTURES 60)
1180+
endif()
1181+
endif()
1182+
11641183
enable_language(CUDA)
11651184
ADD_DEFINITIONS(-DHAVE_CUDA)
11661185
set(CUDA_FOUND TRUE)
11671186
set(CUDA_PROPAGATE_HOST_FLAGS ON)
11681187
if(NOT WIN32)
1169-
if ((CMAKE_BUILD_TYPE STREQUAL "Debug") OR (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
1170-
set(CUDA_NVCC_FLAGS "-g ${CUDA_NVCC_FLAGS}")
1171-
endif()
1188+
if ((CMAKE_BUILD_TYPE STREQUAL "Debug") OR (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
1189+
set(CUDA_NVCC_FLAGS "-g ${CUDA_NVCC_FLAGS}")
1190+
endif()
11721191
endif()
11731192
covise_find_package(CCCL CONFIG)
1174-
ENDIF()
1193+
endif()
11751194

1176-
if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
1177-
if(CUDAToolkit_VERSION_MAJOR GREATER 12)
1178-
set(CMAKE_CUDA_ARCHITECTURES 75)
1179-
else()
1180-
set(CMAKE_CUDA_ARCHITECTURES 60)
1181-
endif()
1182-
endif()
1195+
ENDIF(COVISE_USE_CUDA)
11831196
ENDMACRO(COVISE_FIND_CUDA)
11841197

11851198
MACRO(COVISE_FIND_BOOST)

0 commit comments

Comments
 (0)