diff --git a/CMakeLists.txt b/CMakeLists.txt index bc1022af..bdc6c30c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -103,7 +103,13 @@ if(CATCH_BUILD_FUZZERS) endif() if(CATCH_DEVELOPMENT_BUILD) - add_warnings_to_targets("${CATCH_WARNING_TARGETS}") + set(CATCH_ALL_TARGETS ${CATCH_IMPL_TARGETS} ${CATCH_TEST_TARGETS}) + add_warnings_to_targets("${CATCH_ALL_TARGETS}") + # After we added the noreturn hint to FAIL and SKIP, Clang became + # extremely good at diagnosing tests that test these macros as being + # noreturn, but not marked as such. This made the warning useless for + # our test files. + add_cxx_flag_if_supported_to_targets("-Wno-missing-noreturn" "${CATCH_TEST_TARGETS}") endif() # Only perform the installation steps when Catch is not being used as diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 4035a025..74b65995 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -54,5 +54,5 @@ foreach(name ${ALL_EXAMPLE_TARGETS}) target_link_libraries(${name} Catch2WithMain) endforeach() -list(APPEND CATCH_WARNING_TARGETS ${ALL_EXAMPLE_TARGETS}) -set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE) +list(APPEND CATCH_TEST_TARGETS ${ALL_EXAMPLE_TARGETS}) +set(CATCH_TEST_TARGETS ${CATCH_TEST_TARGETS} PARENT_SCOPE) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d8015737..49b2d1d1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -451,8 +451,8 @@ if(CATCH_BUILD_EXAMPLES OR CATCH_BUILD_EXTRA_TESTS) target_compile_features(Catch2_buildall_interface INTERFACE cxx_std_14) endif() -list(APPEND CATCH_WARNING_TARGETS Catch2 Catch2WithMain) -set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE) +list(APPEND CATCH_IMPL_TARGETS Catch2 Catch2WithMain) +set(CATCH_IMPL_TARGETS ${CATCH_IMPL_TARGETS} PARENT_SCOPE) # We still do not support building dynamic library with hidden visibility # so we want to check & warn users if they do this. However, we won't abort diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 72df0beb..8f8a3755 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -662,5 +662,5 @@ foreach(reporterName # "Automake" - the simple .trs format does not support any ) endforeach() -list(APPEND CATCH_WARNING_TARGETS SelfTest) -set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE) +list(APPEND CATCH_TEST_TARGETS SelfTest) +set(CATCH_TEST_TARGETS ${CATCH_TEST_TARGETS} PARENT_SCOPE) diff --git a/tests/ExtraTests/CMakeLists.txt b/tests/ExtraTests/CMakeLists.txt index dc1e74ef..bb7292d6 100644 --- a/tests/ExtraTests/CMakeLists.txt +++ b/tests/ExtraTests/CMakeLists.txt @@ -215,7 +215,7 @@ if(MSVC) add_executable(WindowsHeader ${TESTS_DIR}/X90-WindowsHeaderInclusion.cpp) target_link_libraries(WindowsHeader Catch2WithMain) add_test(NAME WindowsHeader COMMAND WindowsHeader -r compact) - list(APPEND CATCH_WARNING_TARGETS ${EXTRA_TEST_BINARIES} WindowsHeader) + list(APPEND CATCH_TEST_TARGETS ${EXTRA_TEST_BINARIES} WindowsHeader) endif() add_executable(PartialTestCaseEvents ${TESTS_DIR}/X21-PartialTestCaseEvents.cpp) @@ -502,8 +502,8 @@ set(EXTRA_TEST_BINARIES # Notice that we are modifying EXTRA_TEST_BINARIES destructively, do not # use it after this point! list(FILTER EXTRA_TEST_BINARIES EXCLUDE REGEX "DisabledExceptions.*") -list(APPEND CATCH_WARNING_TARGETS ${EXTRA_TEST_BINARIES}) -set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE) +list(APPEND CATCH_TEST_TARGETS ${EXTRA_TEST_BINARIES}) +set(CATCH_TEST_TARGETS ${CATCH_TEST_TARGETS} PARENT_SCOPE) # This sets up a one-off executable that compiles against the amalgamated # files, and then runs it for a super simple check that the amalgamated