@@ -20,41 +20,43 @@ if(ISPTR_ENABLE_PYTHON AND NOT Python3_Development_FOUND)
2020endif ()
2121
2222
23- set (TEST_SUFFIXES
24- 17
25- 20
26- 23
27- )
23+ foreach (STANDARD 17 20 23 26)
24+ if (cxx_std_ ${STANDARD} IN_LIST CMAKE_CXX_COMPILE_FEATURES)
25+ list ( APPEND TEST_STANDARDS ${STANDARD} )
26+ endif ()
27+ endforeach ( )
2828
29- set (CXX_STANDARD_17 17)
30- set (CXX_STANDARD_20 20)
31- set (CXX_STANDARD_23 23)
3229
33- set (TEST_VARIANTS_17 "headers" )
34- set (TEST_VARIANTS_20 "headers" )
35- set (TEST_VARIANTS_23 "headers" )
30+ foreach (TEST_STANDARD ${TEST_STANDARDS} )
31+ set (CXX_STANDARD_${TEST_STANDARD} ${TEST_STANDARD} )
32+ set (TEST_VARIANTS_${TEST_STANDARD} "headers" )
33+ endforeach ()
34+
3635
3736if (${ISPTR_ENABLE_MODULE} )
3837 if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.28" )
39- list (APPEND TEST_VARIANTS_20 "module" )
40- list (APPEND TEST_VARIANTS_23 "module" )
38+ foreach (TEST_STANDARD ${TEST_STANDARDS} )
39+ if (TEST_STANDARD GREATER_EQUAL 20)
40+ list (APPEND TEST_VARIANTS_${TEST_STANDARD} "module" )
41+ endif ()
42+ endforeach ()
4143 else ()
4244 message (WARNING "CMake version ${CMAKE_VERSION} doesn't support modules, ignoring ISPTR_ENABLE_MODULE" )
4345 endif ()
4446endif ()
4547
4648set (TEST_COMMAND "" )
4749
48- foreach (TEST_SUFFIX ${TEST_SUFFIXES } )
50+ foreach (TEST_STANDARD ${TEST_STANDARDS } )
4951
50- foreach (TEST_VARIANT ${TEST_VARIANTS_${TEST_SUFFIX } })
52+ foreach (TEST_VARIANT ${TEST_VARIANTS_${TEST_STANDARD } })
5153
52- set (TEST_TARGET_NAME test-${TEST_SUFFIX } -${TEST_VARIANT} )
54+ set (TEST_TARGET_NAME test-${TEST_STANDARD } -${TEST_VARIANT} )
5355
5456 add_executable (${TEST_TARGET_NAME} EXCLUDE_FROM_ALL )
5557
5658 set_target_properties (${TEST_TARGET_NAME} PROPERTIES
57- CXX_STANDARD ${CXX_STANDARD_${TEST_SUFFIX }}
59+ CXX_STANDARD ${CXX_STANDARD_${TEST_STANDARD }}
5860 CXX_STANDARD_REQUIRED OFF
5961 CXX_EXTENSIONS OFF
6062 CXX_VISIBILITY_PRESET hidden
0 commit comments