blob: 2e79297ab5d6e20682d2c8ea67791c42cd346b7c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
configure_file(
"${PROJECT_SOURCE_DIR}/cmake/CTestCustom.cmake"
"${PROJECT_BINARY_DIR}/CTestCustom.cmake"
COPYONLY)
add_executable(frozen.tests "")
target_link_libraries(frozen.tests PUBLIC frozen::frozen)
target_sources(frozen.tests PRIVATE
${CMAKE_CURRENT_LIST_DIR}/bench.hpp
${CMAKE_CURRENT_LIST_DIR}/catch.hpp
${CMAKE_CURRENT_LIST_DIR}/test_algorithms.cpp
${CMAKE_CURRENT_LIST_DIR}/test_elsa_std.cpp
${CMAKE_CURRENT_LIST_DIR}/test_main.cpp
${CMAKE_CURRENT_LIST_DIR}/test_map.cpp
${CMAKE_CURRENT_LIST_DIR}/test_rand.cpp
${CMAKE_CURRENT_LIST_DIR}/test_set.cpp
${CMAKE_CURRENT_LIST_DIR}/test_str.cpp
${CMAKE_CURRENT_LIST_DIR}/test_str_set.cpp
${CMAKE_CURRENT_LIST_DIR}/test_unordered_map.cpp
${CMAKE_CURRENT_LIST_DIR}/test_unordered_map_str.cpp
${CMAKE_CURRENT_LIST_DIR}/test_unordered_set.cpp
${CMAKE_CURRENT_LIST_DIR}/test_unordered_str_set.cpp)
string(CONCAT generator
# msvc gives invalid integral overflow warning for unsigned type
"$<$<CXX_COMPILER_ID:MSVC>:/W3;/WX;/wd4307>"
"$<$<OR:$<CXX_COMPILER_ID:GNU>"
",$<CXX_COMPILER_ID:Clang>"
",$<CXX_COMPILER_ID:AppleClang>>"
":-Wall;-Wextra;-Wpedantic;-Werror;-Wshadow;"
"$<$<BOOL:${frozen.coverage}>:--coverage>>"
"$<$<CXX_COMPILER_ID:Intel>:"
"$<$<PLATFORM_ID:Windows>:/W3;/WX;>"
"$<$<NOT:$<PLATFORM_ID:Windows>>:-Wall;-Werror>>")
target_compile_options(frozen.tests PUBLIC ${generator})
if(cxx_20_supported)
target_compile_features(frozen.tests PUBLIC cxx_std_20)
elseif(cxx_17_supported)
target_compile_features(frozen.tests PUBLIC cxx_std_17)
endif()
string(CONCAT generator
"$<$<OR:$<CXX_COMPILER_ID:GNU>"
",$<CXX_COMPILER_ID:Clang>"
",$<CXX_COMPILER_ID:AppleClang>>"
":$<$<BOOL:${frozen.coverage}>:--coverage>>")
target_link_libraries(frozen.tests PUBLIC ${generator})
add_test(NAME frozen.tests COMMAND frozen.tests)
add_executable(test_no_expections
${CMAKE_CURRENT_LIST_DIR}/no_exceptions.cpp)
target_link_libraries(test_no_expections PUBLIC frozen::frozen)
target_compile_options(test_no_expections PUBLIC "-fno-exceptions")
add_test(no_exceptions test_no_expections)
set_tests_properties(no_exceptions PROPERTIES WILL_FAIL TRUE)
|