Added basic framework for creating cxx20 test cases
This commit is contained in:
@@ -3,6 +3,8 @@ file(GLOB_RECURSE TEST_CASE_SOURCES t*/*.cc t*/*.c t*/src/*.c)
|
||||
file(GLOB_RECURSE TEST_CASE_CONFIGS t*/.clang-uml)
|
||||
file(GLOB_RECURSE TEST_CONFIG_YMLS test_config_data/*.yml)
|
||||
|
||||
set(TEST_CASES_REQUIRING_CXX20 t00056)
|
||||
|
||||
set(CLANG_UML_TEST_LIBRARIES
|
||||
clang-umllib
|
||||
${YAML_CPP_LIBRARIES}
|
||||
@@ -13,6 +15,23 @@ if(MSVC)
|
||||
list(APPEND CLANG_UML_TEST_LIBRARIES "Version.lib")
|
||||
endif(MSVC)
|
||||
|
||||
list(FIND CMAKE_CXX_COMPILE_FEATURES cxx_std_20 SUPPORTS_CXX_STD_20)
|
||||
|
||||
if(SUPPORTS_CXX_STD_20 EQUAL -1
|
||||
OR ${LLVM_PACKAGE_VERSION} VERSION_LESS "15.0")
|
||||
set(ENABLE_CXX_STD_20_TEST_CASES 0)
|
||||
foreach(CXX20_TC ${TEST_CASES_REQUIRING_CXX20})
|
||||
list(FILTER TEST_CASE_SOURCES
|
||||
EXCLUDE
|
||||
REGEX ".*${CXX20_TC}.*")
|
||||
list(FILTER TEST_CASE_CONFIGS
|
||||
EXCLUDE
|
||||
REGEX ".*${CXX20_TC}.*")
|
||||
endforeach()
|
||||
else()
|
||||
set(ENABLE_CXX_STD_20_TEST_CASES 1)
|
||||
endif()
|
||||
|
||||
set(TEST_CASES
|
||||
test_util
|
||||
test_model
|
||||
@@ -27,11 +46,14 @@ foreach(TEST_NAME ${TEST_CASES})
|
||||
${TEST_NAME}.cc
|
||||
$<$<STREQUAL:${TEST_NAME},test_cases>:${TEST_CASE_SOURCES}>
|
||||
catch.h)
|
||||
target_compile_features(${TEST_NAME} PRIVATE cxx_std_17)
|
||||
target_compile_features(${TEST_NAME} PRIVATE
|
||||
$<IF:${ENABLE_CXX_STD_20_TEST_CASES},cxx_std_20,cxx_std_17>)
|
||||
target_compile_definitions(${TEST_NAME} PRIVATE
|
||||
$<$<EQUAL:${ENABLE_CXX_STD_20_TEST_CASES},1>:ENABLE_CXX_STD_20_TEST_CASES>)
|
||||
target_compile_options(${TEST_NAME} PRIVATE
|
||||
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>:
|
||||
-Wno-unused-parameter -Wno-unused-private-field -Wno-unused-variable
|
||||
-Wno-attributes -Wno-nonnull>
|
||||
-Wno-attributes -Wno-nonnull -Wno-deprecated-enum-enum-conversion>
|
||||
$<$<CXX_COMPILER_ID:MSVC>:/MP /W1 /bigobj /wd4624>)
|
||||
target_link_libraries(${TEST_NAME} PRIVATE ${CLANG_UML_TEST_LIBRARIES})
|
||||
endforeach()
|
||||
|
||||
Reference in New Issue
Block a user