Skip to content

Commit 4c92a90

Browse files
committed
WIP: C++20. Some new gcc warnings. CI probably needs tweaking
1 parent 5f2cba3 commit 4c92a90

File tree

5 files changed

+22
-22
lines changed

5 files changed

+22
-22
lines changed

cmake/CheckCompilerFunctionality.cmake

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ function(flamegpu_check_compiler_functionality)
8585
CUDA_STD_FILESYSTEM
8686
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
8787
"${CMAKE_CURRENT_LIST_DIR}/CheckCompilerFunctionality/CheckStdFilesystem.cu"
88-
CXX_STANDARD 17
89-
CUDA_STANDARD 17
88+
CXX_STANDARD 20
89+
CUDA_STANDARD 20
9090
CXX_STANDARD_REQUIRED "ON"
9191
)
9292
endif()
@@ -122,8 +122,8 @@ function(flamegpu_check_compiler_functionality)
122122
GCC_CUDA_STDCHRONO
123123
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
124124
"${CMAKE_CURRENT_LIST_DIR}/CheckCompilerFunctionality/CheckStdChrono.cu"
125-
CXX_STANDARD 17
126-
CUDA_STANDARD 17
125+
CXX_STANDARD 20
126+
CUDA_STANDARD 20
127127
CXX_STANDARD_REQUIRED "ON"
128128
)
129129
endif()
@@ -164,8 +164,8 @@ function(flamegpu_check_compiler_functionality)
164164
GCC_CUDA_VECTOR_TUPLE_PUSHBACK
165165
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
166166
"${CMAKE_CURRENT_LIST_DIR}/CheckCompilerFunctionality/CheckVectorTuplePushBack.cu"
167-
CXX_STANDARD 17
168-
CUDA_STANDARD 17
167+
CXX_STANDARD 20
168+
CUDA_STANDARD 20
169169
CXX_STANDARD_REQUIRED "ON"
170170
)
171171
endif()
@@ -195,8 +195,8 @@ function(flamegpu_check_compiler_functionality)
195195
LINUX_F_OFD_SETLKW
196196
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
197197
"${CMAKE_CURRENT_LIST_DIR}/CheckCompilerFunctionality/F_OFD_SETLKW.cpp"
198-
CXX_STANDARD 17
199-
CUDA_STANDARD 17
198+
CXX_STANDARD 20
199+
CUDA_STANDARD 20
200200
CXX_STANDARD_REQUIRED "ON"
201201
)
202202
if(NOT LINUX_F_OFD_SETLKW)

cmake/common.cmake

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ function(flamegpu_configure_rc_file)
242242
endif()
243243
endfunction()
244244

245-
function(flamegpu_target_cxx17)
245+
function(flamegpu_target_cxx20)
246246
cmake_parse_arguments(
247247
FTC
248248
""
@@ -255,8 +255,8 @@ function(flamegpu_target_cxx17)
255255
elseif(NOT TARGET ${FTC_TARGET})
256256
message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION}: TARGET '${FTC_TARGET}' is not a valid target")
257257
endif()
258-
target_compile_features(${FTC_TARGET} PUBLIC cxx_std_17)
259-
target_compile_features(${FTC_TARGET} PUBLIC cuda_std_17)
258+
target_compile_features(${FTC_TARGET} PUBLIC cxx_std_20)
259+
target_compile_features(${FTC_TARGET} PUBLIC cuda_std_20)
260260
set_property(TARGET ${FTC_TARGET} PROPERTY CXX_EXTENSIONS OFF)
261261
set_property(TARGET ${FTC_TARGET} PROPERTY CUDA_EXTENSIONS OFF)
262262
set_property(TARGET ${FTC_TARGET} PROPERTY CXX_STANDARD_REQUIRED ON)
@@ -375,8 +375,8 @@ function(flamegpu_add_executable NAME SRC FLAMEGPU_ROOT PROJECT_ROOT IS_EXAMPLE)
375375
flamegpu_enable_compiler_warnings(TARGET "${NAME}")
376376
# Apply common compiler settings
377377
flamegpu_common_compiler_settings(TARGET "${NAME}")
378-
# Set C++17 using modern CMake options
379-
flamegpu_target_cxx17(TARGET "${NAME}")
378+
# Set C++20 using modern CMake options
379+
flamegpu_target_cxx20(TARGET "${NAME}")
380380

381381
# Enable RDC for the target
382382
set_property(TARGET ${NAME} PROPERTY CUDA_SEPARABLE_COMPILATION ON)
@@ -430,8 +430,8 @@ function(flamegpu_add_library NAME SRC FLAMEGPU_ROOT PROJECT_ROOT IS_EXAMPLE)
430430
flamegpu_enable_compiler_warnings(TARGET "${NAME}")
431431
# Apply common compiler settings
432432
flamegpu_common_compiler_settings(TARGET "${NAME}")
433-
# Set C++17 using modern CMake options
434-
flamegpu_target_cxx17(TARGET "${NAME}")
433+
# Set C++20 using modern CMake options
434+
flamegpu_target_cxx20(TARGET "${NAME}")
435435

436436
# Enable RDC for the target
437437
set_property(TARGET ${NAME} PROPERTY CUDA_SEPARABLE_COMPILATION ON)

src/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -495,9 +495,9 @@ unset(SRC_GROUP_MANUAL)
495495
# Define which source files are required for the target executable
496496
add_library(${PROJECT_NAME} STATIC ${ALL_SRC})
497497

498-
# Require C++17 as a public target property for C++ and CUDA, with no extensions, and the standard is required
499-
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17)
500-
target_compile_features(${PROJECT_NAME} PUBLIC cuda_std_17)
498+
# Require C++20 as a public target property for C++ and CUDA, with no extensions, and the standard is required
499+
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_20)
500+
target_compile_features(${PROJECT_NAME} PUBLIC cuda_std_20)
501501
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_EXTENSIONS OFF)
502502
set_property(TARGET ${PROJECT_NAME} PROPERTY CUDA_EXTENSIONS OFF)
503503
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)

src/flamegpu/detail/JitifyCache.cu

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -429,8 +429,8 @@ std::unique_ptr<jitify2::LinkedProgramData> JitifyCache::buildProgram(
429429
#endif
430430

431431
// pass the c++ language dialect. It may be better to explicitly pass this from CMake.
432-
#if defined(__cplusplus) && __cplusplus > 201700L && defined(__CUDACC_VER_MAJOR__) && __CUDACC_VER_MAJOR__ >= 11
433-
options.push_back("--std=c++17");
432+
#if defined(__cplusplus) && __cplusplus >= 202002L && defined(__CUDACC_VER_MAJOR__) && __CUDACC_VER_MAJOR__ >= 12
433+
options.push_back("--std=c++20");
434434
#endif
435435

436436
// If FLAMEGPU_SEATBELTS is defined and false, forward it as off, otherwise forward it as on.

swig/python/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ set_property(TARGET ${PYTHON_SWIG_TARGET_NAME} PROPERTY CUDA_SEPARABLE_COMPILATI
105105
set_property(TARGET ${PYTHON_SWIG_TARGET_NAME} APPEND PROPERTY SWIG_GENERATED_COMPILE_DEFINITIONS "SWIG")
106106

107107
# Require C++17 as a public target property for C++ and CUDA, with no extensions, and the standard is required
108-
target_compile_features(${PYTHON_SWIG_TARGET_NAME} PUBLIC cxx_std_17)
109-
target_compile_features(${PYTHON_SWIG_TARGET_NAME} PUBLIC cuda_std_17)
108+
target_compile_features(${PYTHON_SWIG_TARGET_NAME} PUBLIC cxx_std_20)
109+
target_compile_features(${PYTHON_SWIG_TARGET_NAME} PUBLIC cuda_std_20)
110110
set_property(TARGET ${PYTHON_SWIG_TARGET_NAME} PROPERTY CXX_EXTENSIONS OFF)
111111
set_property(TARGET ${PYTHON_SWIG_TARGET_NAME} PROPERTY CUDA_EXTENSIONS OFF)
112112
set_property(TARGET ${PYTHON_SWIG_TARGET_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)

0 commit comments

Comments
 (0)