Skip to content

Commit f7fb67e

Browse files
committed
Fix CMake GCC/nvcc <chrono> support detection for some cases
1 parent c9d3776 commit f7fb67e

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

cmake/CheckCompilerFunctionality.cmake

+17-13
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,24 @@ function(CheckCompilerFunctionality)
2727
# This was patched in subsequent versions, and backported in the release branches, but the broken version is still distributed in some cases (i.e. Ubuntu 20.04, but not 21.04).
2828
# See https://github.com/FLAMEGPU/FLAMEGPU2/issues/575, https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100102
2929
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
30-
# CUDA must be available.
31-
enable_language(CUDA)
3230
# Try to compile the test case file for inclusion of chrono.
33-
try_compile(
34-
GCC_CUDA_STDCHRONO
35-
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
36-
"${CMAKE_CURRENT_LIST_DIR}/CheckCompilerFunctionality/CheckStdChrono.cu"
37-
CXX_STANDARD 14
38-
CUDA_STANDARD 14
39-
CXX_STANDARD_REQUIRED "ON"
40-
CMAKE_FLAGS
41-
-DCMAKE_CUDA_ARCHITECTURES="OFF"
42-
)
43-
# If an error occured while building the simple
31+
if(NOT DEFINED GCC_CUDA_STDCHRONO)
32+
# CUDA must be available.
33+
enable_language(CUDA)
34+
# Disable CMAKE_CUDA_ARCHTIECTURES if not already controlled. This is scoped to the function so safe to control.
35+
if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES OR "${CMAKE_CUDA_ARCHITECTURES}" STREQUAL "")
36+
set(CMAKE_CUDA_ARCHITECTURES "OFF")
37+
endif()
38+
try_compile(
39+
GCC_CUDA_STDCHRONO
40+
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
41+
"${CMAKE_CURRENT_LIST_DIR}/CheckCompilerFunctionality/CheckStdChrono.cu"
42+
CXX_STANDARD 14
43+
CUDA_STANDARD 14
44+
CXX_STANDARD_REQUIRED "ON"
45+
)
46+
endif()
47+
# If an error occured while building the <chrono> snippet, report a warning
4448
if(NOT GCC_CUDA_STDCHRONO)
4549
# If the GCC versions is known to be bad, give an appropriate error
4650
if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 10.3.0 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 11.1.0)

0 commit comments

Comments
 (0)