Skeleton for applying deprecation warnings

This commit is contained in:
Martin Hořeňovský
2025-07-20 21:40:18 +02:00
parent 715558fd97
commit 8c3ffe05e1
8 changed files with 50 additions and 0 deletions

View File

@@ -32,6 +32,7 @@ expand_template(
"#cmakedefine CATCH_CONFIG_CPP17_STRING_VIEW": "", "#cmakedefine CATCH_CONFIG_CPP17_STRING_VIEW": "",
"#cmakedefine CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS": "", "#cmakedefine CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS": "",
"#cmakedefine CATCH_CONFIG_CPP17_VARIANT": "", "#cmakedefine CATCH_CONFIG_CPP17_VARIANT": "",
"#cmakedefine CATCH_CONFIG_DEPRECATION_ANNOTATIONS": "",
"#cmakedefine CATCH_CONFIG_DISABLE_EXCEPTIONS_CUSTOM_HANDLER": "", "#cmakedefine CATCH_CONFIG_DISABLE_EXCEPTIONS_CUSTOM_HANDLER": "",
"#cmakedefine CATCH_CONFIG_DISABLE_EXCEPTIONS": "", "#cmakedefine CATCH_CONFIG_DISABLE_EXCEPTIONS": "",
"#cmakedefine CATCH_CONFIG_DISABLE_STRINGIFICATION": "", "#cmakedefine CATCH_CONFIG_DISABLE_STRINGIFICATION": "",
@@ -55,6 +56,7 @@ expand_template(
"#cmakedefine CATCH_CONFIG_NO_CPP17_STRING_VIEW": "", "#cmakedefine CATCH_CONFIG_NO_CPP17_STRING_VIEW": "",
"#cmakedefine CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS": "", "#cmakedefine CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS": "",
"#cmakedefine CATCH_CONFIG_NO_CPP17_VARIANT": "", "#cmakedefine CATCH_CONFIG_NO_CPP17_VARIANT": "",
"#cmakedefine CATCH_CONFIG_NO_DEPRECATION_ANNOTATIONS": "",
"#cmakedefine CATCH_CONFIG_NO_GETENV": "", "#cmakedefine CATCH_CONFIG_NO_GETENV": "",
"#cmakedefine CATCH_CONFIG_NO_GLOBAL_NEXTAFTER": "", "#cmakedefine CATCH_CONFIG_NO_GLOBAL_NEXTAFTER": "",
"#cmakedefine CATCH_CONFIG_NO_POSIX_SIGNALS": "", "#cmakedefine CATCH_CONFIG_NO_POSIX_SIGNALS": "",

View File

@@ -44,6 +44,7 @@ set(_OverridableOptions
"GETENV" "GETENV"
"EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT" "EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT"
"USE_BUILTIN_CONSTANT_P" "USE_BUILTIN_CONSTANT_P"
"DEPRECATION_ANNOTATIONS"
) )
foreach(OptionName ${_OverridableOptions}) foreach(OptionName ${_OverridableOptions})

View File

@@ -263,6 +263,21 @@ namespace Catch {
} }
``` ```
## Disabling deprecation warnings
> Introduced in Catch2 X.Y.Z
Catch2 has started using the C++ macro `[[deprecated]]` to mark things
that are deprecated and should not be used any more. If you need to
temporarily disable these warnings, use
CATCH_CONFIG_NO_DEPRECATION_ANNOTATIONS
Catch2 currently does not support more fine-grained deprecation warning
control, nor do we plan to.
## Overriding Catch's debug break (`-b`) ## Overriding Catch's debug break (`-b`)
> [Introduced](https://github.com/catchorg/Catch2/pull/1846) in Catch2 2.11.2. > [Introduced](https://github.com/catchorg/Catch2/pull/1846) in Catch2 2.11.2.

View File

@@ -85,6 +85,7 @@ set(IMPL_HEADERS
${SOURCES_DIR}/internal/catch_debug_console.hpp ${SOURCES_DIR}/internal/catch_debug_console.hpp
${SOURCES_DIR}/internal/catch_debugger.hpp ${SOURCES_DIR}/internal/catch_debugger.hpp
${SOURCES_DIR}/internal/catch_decomposer.hpp ${SOURCES_DIR}/internal/catch_decomposer.hpp
${SOURCES_DIR}/internal/catch_deprecation_macro.hpp
${SOURCES_DIR}/internal/catch_enforce.hpp ${SOURCES_DIR}/internal/catch_enforce.hpp
${SOURCES_DIR}/internal/catch_enum_values_registry.hpp ${SOURCES_DIR}/internal/catch_enum_values_registry.hpp
${SOURCES_DIR}/internal/catch_errno_guard.hpp ${SOURCES_DIR}/internal/catch_errno_guard.hpp

View File

@@ -66,6 +66,7 @@
#include <catch2/internal/catch_debug_console.hpp> #include <catch2/internal/catch_debug_console.hpp>
#include <catch2/internal/catch_debugger.hpp> #include <catch2/internal/catch_debugger.hpp>
#include <catch2/internal/catch_decomposer.hpp> #include <catch2/internal/catch_decomposer.hpp>
#include <catch2/internal/catch_deprecation_macro.hpp>
#include <catch2/internal/catch_enforce.hpp> #include <catch2/internal/catch_enforce.hpp>
#include <catch2/internal/catch_enum_values_registry.hpp> #include <catch2/internal/catch_enum_values_registry.hpp>
#include <catch2/internal/catch_errno_guard.hpp> #include <catch2/internal/catch_errno_guard.hpp>

View File

@@ -187,6 +187,16 @@
#endif #endif
#cmakedefine CATCH_CONFIG_DEPRECATION_ANNOTATIONS
#cmakedefine CATCH_CONFIG_NO_DEPRECATION_ANNOTATIONS
#if defined( CATCH_CONFIG_DEPRECATION_ANNOTATIONS ) && \
defined( CATCH_CONFIG_NO_DEPRECATION_ANNOTATIONS )
# error Cannot force DEPRECATION_ANNOTATIONS to both ON and OFF
#endif
// ------ // ------
// Simple toggle defines // Simple toggle defines
// their value is never used and they cannot be overridden // their value is never used and they cannot be overridden

View File

@@ -0,0 +1,19 @@
// Copyright Catch2 Authors
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
// SPDX-License-Identifier: BSL-1.0
#ifndef CATCH_DEPRECATION_MACRO_HPP_INCLUDED
#define CATCH_DEPRECATION_MACRO_HPP_INCLUDED
#include <catch2/catch_user_config.hpp>
#if !defined( CATCH_CONFIG_NO_DEPRECATION_ANNOTATIONS )
# define DEPRECATED( msg ) [[deprecated( msg )]]
#else
# define DEPRECATED( msg )
#endif
#endif // CATCH_DEPRECATION_MACRO_HPP_INCLUDED

View File

@@ -92,6 +92,7 @@ internal_headers = [
'internal/catch_debug_console.hpp', 'internal/catch_debug_console.hpp',
'internal/catch_debugger.hpp', 'internal/catch_debugger.hpp',
'internal/catch_decomposer.hpp', 'internal/catch_decomposer.hpp',
'internal/catch_deprecation_macro.hpp',
'internal/catch_enforce.hpp', 'internal/catch_enforce.hpp',
'internal/catch_enum_values_registry.hpp', 'internal/catch_enum_values_registry.hpp',
'internal/catch_errno_guard.hpp', 'internal/catch_errno_guard.hpp',