diff options
author | Sona Kurazyan <sona.kurazyan@qt.io> | 2022-07-27 14:46:08 +0200 |
---|---|---|
committer | Sona Kurazyan <sona.kurazyan@qt.io> | 2022-07-31 18:19:06 +0000 |
commit | 947a9d2aafe71f61a94a0e8a2c4be974fe79bea3 (patch) | |
tree | 646122de5479f83c5203c8348aa5822d016ed826 /src/corelib/global/qtdeprecationmarkers.h | |
parent | f1457b7b4742a3903b441d04c12cf500038f80b8 (diff) |
Extract header qtdeprecationmarkers.h from qglobal.h
Task-number: QTBUG-99313
Change-Id: Ief3d7ddb9dc0962bd3404f1fe61d292f2fe434cc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/global/qtdeprecationmarkers.h')
-rw-r--r-- | src/corelib/global/qtdeprecationmarkers.h | 280 |
1 files changed, 280 insertions, 0 deletions
diff --git a/src/corelib/global/qtdeprecationmarkers.h b/src/corelib/global/qtdeprecationmarkers.h new file mode 100644 index 0000000000..2fd382ad0d --- /dev/null +++ b/src/corelib/global/qtdeprecationmarkers.h @@ -0,0 +1,280 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTDEPRECATIONMARKERS_H +#define QTDEPRECATIONMARKERS_H + +#include <QtCore/qtversionchecks.h> +#include <QtCore/qtnamespacemacros.h> + +QT_BEGIN_NAMESPACE + +#if defined(QT_NO_DEPRECATED) +# undef QT_DEPRECATED +# undef QT_DEPRECATED_X +# undef QT_DEPRECATED_VARIABLE +# undef QT_DEPRECATED_CONSTRUCTOR +#elif !defined(QT_NO_DEPRECATED_WARNINGS) +# undef QT_DEPRECATED +# define QT_DEPRECATED Q_DECL_DEPRECATED +# undef QT_DEPRECATED_X +# define QT_DEPRECATED_X(text) Q_DECL_DEPRECATED_X(text) +# undef QT_DEPRECATED_VARIABLE +# define QT_DEPRECATED_VARIABLE Q_DECL_VARIABLE_DEPRECATED +# undef QT_DEPRECATED_CONSTRUCTOR +# define QT_DEPRECATED_CONSTRUCTOR Q_DECL_CONSTRUCTOR_DEPRECATED explicit +#else +# undef QT_DEPRECATED +# define QT_DEPRECATED +# undef QT_DEPRECATED_X +# define QT_DEPRECATED_X(text) +# undef QT_DEPRECATED_VARIABLE +# define QT_DEPRECATED_VARIABLE +# undef QT_DEPRECATED_CONSTRUCTOR +# define QT_DEPRECATED_CONSTRUCTOR +# undef Q_DECL_ENUMERATOR_DEPRECATED +# define Q_DECL_ENUMERATOR_DEPRECATED +#endif + +#ifndef QT_DEPRECATED_WARNINGS_SINCE +# ifdef QT_DISABLE_DEPRECATED_BEFORE +# define QT_DEPRECATED_WARNINGS_SINCE QT_DISABLE_DEPRECATED_BEFORE +# else +# define QT_DEPRECATED_WARNINGS_SINCE QT_VERSION +# endif +#endif + +#ifndef QT_DISABLE_DEPRECATED_BEFORE +#define QT_DISABLE_DEPRECATED_BEFORE QT_VERSION_CHECK(5, 0, 0) +#endif + +/* + QT_DEPRECATED_SINCE(major, minor) evaluates as true if the Qt version is greater than + the deprecation point specified. + + Use it to specify from which version of Qt a function or class has been deprecated + + Example: + #if QT_DEPRECATED_SINCE(5,1) + QT_DEPRECATED void deprecatedFunction(); //function deprecated since Qt 5.1 + #endif + +*/ +#ifdef QT_DEPRECATED +#define QT_DEPRECATED_SINCE(major, minor) (QT_VERSION_CHECK(major, minor, 0) > QT_DISABLE_DEPRECATED_BEFORE) +#else +#define QT_DEPRECATED_SINCE(major, minor) 0 +#endif + +/* + QT_DEPRECATED_VERSION(major, minor) and QT_DEPRECATED_VERSION_X(major, minor, text) + outputs a deprecation warning if QT_DEPRECATED_WARNINGS_SINCE is equal or greater + than the version specified as major, minor. This makes it possible to deprecate a + function without annoying a user who needs to stick at a specified minimum version + and therefore can't use the new function. +*/ +#if QT_DEPRECATED_WARNINGS_SINCE >= QT_VERSION_CHECK(5, 12, 0) +# define QT_DEPRECATED_VERSION_X_5_12(text) QT_DEPRECATED_X(text) +# define QT_DEPRECATED_VERSION_5_12 QT_DEPRECATED +#else +# define QT_DEPRECATED_VERSION_X_5_12(text) +# define QT_DEPRECATED_VERSION_5_12 +#endif + +#if QT_DEPRECATED_WARNINGS_SINCE >= QT_VERSION_CHECK(5, 13, 0) +# define QT_DEPRECATED_VERSION_X_5_13(text) QT_DEPRECATED_X(text) +# define QT_DEPRECATED_VERSION_5_13 QT_DEPRECATED +#else +# define QT_DEPRECATED_VERSION_X_5_13(text) +# define QT_DEPRECATED_VERSION_5_13 +#endif + +#if QT_DEPRECATED_WARNINGS_SINCE >= QT_VERSION_CHECK(5, 14, 0) +# define QT_DEPRECATED_VERSION_X_5_14(text) QT_DEPRECATED_X(text) +# define QT_DEPRECATED_VERSION_5_14 QT_DEPRECATED +#else +# define QT_DEPRECATED_VERSION_X_5_14(text) +# define QT_DEPRECATED_VERSION_5_14 +#endif + +#if QT_DEPRECATED_WARNINGS_SINCE >= QT_VERSION_CHECK(5, 15, 0) +# define QT_DEPRECATED_VERSION_X_5_15(text) QT_DEPRECATED_X(text) +# define QT_DEPRECATED_VERSION_5_15 QT_DEPRECATED +#else +# define QT_DEPRECATED_VERSION_X_5_15(text) +# define QT_DEPRECATED_VERSION_5_15 +#endif + +#if QT_DEPRECATED_WARNINGS_SINCE >= QT_VERSION_CHECK(6, 0, 0) +# define QT_DEPRECATED_VERSION_X_6_0(text) QT_DEPRECATED_X(text) +# define QT_DEPRECATED_VERSION_6_0 QT_DEPRECATED +#else +# define QT_DEPRECATED_VERSION_X_6_0(text) +# define QT_DEPRECATED_VERSION_6_0 +#endif + +#if QT_DEPRECATED_WARNINGS_SINCE >= QT_VERSION_CHECK(6, 1, 0) +# define QT_DEPRECATED_VERSION_X_6_1(text) QT_DEPRECATED_X(text) +# define QT_DEPRECATED_VERSION_6_1 QT_DEPRECATED +#else +# define QT_DEPRECATED_VERSION_X_6_1(text) +# define QT_DEPRECATED_VERSION_6_1 +#endif + +#if QT_DEPRECATED_WARNINGS_SINCE >= QT_VERSION_CHECK(6, 2, 0) +# define QT_DEPRECATED_VERSION_X_6_2(text) QT_DEPRECATED_X(text) +# define QT_DEPRECATED_VERSION_6_2 QT_DEPRECATED +#else +# define QT_DEPRECATED_VERSION_X_6_2(text) +# define QT_DEPRECATED_VERSION_6_2 +#endif + +#if QT_DEPRECATED_WARNINGS_SINCE >= QT_VERSION_CHECK(6, 3, 0) +# define QT_DEPRECATED_VERSION_X_6_3(text) QT_DEPRECATED_X(text) +# define QT_DEPRECATED_VERSION_6_3 QT_DEPRECATED +#else +# define QT_DEPRECATED_VERSION_X_6_3(text) +# define QT_DEPRECATED_VERSION_6_3 +#endif + +#if QT_DEPRECATED_WARNINGS_SINCE >= QT_VERSION_CHECK(6, 4, 0) +# define QT_DEPRECATED_VERSION_X_6_4(text) QT_DEPRECATED_X(text) +# define QT_DEPRECATED_VERSION_6_4 QT_DEPRECATED +#else +# define QT_DEPRECATED_VERSION_X_6_4(text) +# define QT_DEPRECATED_VERSION_6_4 +#endif + +#if QT_DEPRECATED_WARNINGS_SINCE >= QT_VERSION_CHECK(6, 5, 0) +# define QT_DEPRECATED_VERSION_X_6_5(text) QT_DEPRECATED_X(text) +# define QT_DEPRECATED_VERSION_6_5 QT_DEPRECATED +#else +# define QT_DEPRECATED_VERSION_X_6_5(text) +# define QT_DEPRECATED_VERSION_6_5 +#endif + +#if QT_DEPRECATED_WARNINGS_SINCE >= QT_VERSION_CHECK(6, 6, 0) +# define QT_DEPRECATED_VERSION_X_6_6(text) QT_DEPRECATED_X(text) +# define QT_DEPRECATED_VERSION_6_6 QT_DEPRECATED +#else +# define QT_DEPRECATED_VERSION_X_6_6(text) +# define QT_DEPRECATED_VERSION_6_6 +#endif + +#if QT_DEPRECATED_WARNINGS_SINCE >= QT_VERSION_CHECK(6, 7, 0) +# define QT_DEPRECATED_VERSION_X_6_7(text) QT_DEPRECATED_X(text) +# define QT_DEPRECATED_VERSION_6_7 QT_DEPRECATED +#else +# define QT_DEPRECATED_VERSION_X_6_7(text) +# define QT_DEPRECATED_VERSION_6_7 +#endif + +#if QT_DEPRECATED_WARNINGS_SINCE >= QT_VERSION_CHECK(6, 8, 0) +# define QT_DEPRECATED_VERSION_X_6_8(text) QT_DEPRECATED_X(text) +# define QT_DEPRECATED_VERSION_6_8 QT_DEPRECATED +#else +# define QT_DEPRECATED_VERSION_X_6_8(text) +# define QT_DEPRECATED_VERSION_6_8 +#endif + +#define QT_DEPRECATED_VERSION_X_5(minor, text) QT_DEPRECATED_VERSION_X_5_##minor(text) +#define QT_DEPRECATED_VERSION_X(major, minor, text) QT_DEPRECATED_VERSION_X_##major##_##minor(text) + +#define QT_DEPRECATED_VERSION_5(minor) QT_DEPRECATED_VERSION_5_##minor +#define QT_DEPRECATED_VERSION(major, minor) QT_DEPRECATED_VERSION_##major##_##minor + +/* + QT_IF_DEPRECATED_SINCE(major, minor, whenTrue, whenFalse) expands to + \a whenTrue if the specified (\a major, \a minor) version is less than or + equal to the deprecation version defined by QT_DISABLE_DEPRECATED_BEFORE, + and to \a whenFalse otherwise. + + Currently used for QT_INLINE_SINCE(maj, min), but can also be helpful for + other macros of that kind. + + The implementation uses QT_DEPRECATED_SINCE(maj, min) to define a bunch of + helper QT_IF_DEPRECATED_SINCE_X_Y macros, which expand to \a whenTrue or + \a whenFalse depending on the value of QT_DEPRECATED_SINCE. + + If you need to use QT_IF_DEPRECATED_SINCE() for a (major, minor) version, + that is not yet covered by the list below, you need to copy the definition + and change the major and minor versions accordingly. For example, for + version (X, Y), you will need to add + + \code + #if QT_DEPRECATED_SINCE(X, Y) + # define QT_IF_DEPRECATED_SINCE_X_Y(whenTrue, whenFalse) whenFalse + #else + # define QT_IF_DEPRECATED_SINCE_X_Y(whenTrue, whenFalse) whenTrue + #endif + \endcode +*/ + +#define QT_IF_DEPRECATED_SINCE(major, minor, whenTrue, whenFalse) \ + QT_IF_DEPRECATED_SINCE_ ## major ## _ ## minor(whenTrue, whenFalse) + +#if QT_DEPRECATED_SINCE(6, 0) +# define QT_IF_DEPRECATED_SINCE_6_0(whenTrue, whenFalse) whenFalse +#else +# define QT_IF_DEPRECATED_SINCE_6_0(whenTrue, whenFalse) whenTrue +#endif + +#if QT_DEPRECATED_SINCE(6, 1) +# define QT_IF_DEPRECATED_SINCE_6_1(whenTrue, whenFalse) whenFalse +#else +# define QT_IF_DEPRECATED_SINCE_6_1(whenTrue, whenFalse) whenTrue +#endif + +#if QT_DEPRECATED_SINCE(6, 2) +# define QT_IF_DEPRECATED_SINCE_6_2(whenTrue, whenFalse) whenFalse +#else +# define QT_IF_DEPRECATED_SINCE_6_2(whenTrue, whenFalse) whenTrue +#endif + +#if QT_DEPRECATED_SINCE(6, 3) +# define QT_IF_DEPRECATED_SINCE_6_3(whenTrue, whenFalse) whenFalse +#else +# define QT_IF_DEPRECATED_SINCE_6_3(whenTrue, whenFalse) whenTrue +#endif + +#if QT_DEPRECATED_SINCE(6, 4) +# define QT_IF_DEPRECATED_SINCE_6_4(whenTrue, whenFalse) whenFalse +#else +# define QT_IF_DEPRECATED_SINCE_6_4(whenTrue, whenFalse) whenTrue +#endif + +#if QT_DEPRECATED_SINCE(6, 5) +# define QT_IF_DEPRECATED_SINCE_6_5(whenTrue, whenFalse) whenFalse +#else +# define QT_IF_DEPRECATED_SINCE_6_5(whenTrue, whenFalse) whenTrue +#endif + +#if QT_DEPRECATED_SINCE(6, 6) +# define QT_IF_DEPRECATED_SINCE_6_6(whenTrue, whenFalse) whenFalse +#else +# define QT_IF_DEPRECATED_SINCE_6_6(whenTrue, whenFalse) whenTrue +#endif + +#if QT_DEPRECATED_SINCE(6, 7) +# define QT_IF_DEPRECATED_SINCE_6_7(whenTrue, whenFalse) whenFalse +#else +# define QT_IF_DEPRECATED_SINCE_6_7(whenTrue, whenFalse) whenTrue +#endif + +#if QT_DEPRECATED_SINCE(6, 8) +# define QT_IF_DEPRECATED_SINCE_6_8(whenTrue, whenFalse) whenFalse +#else +# define QT_IF_DEPRECATED_SINCE_6_8(whenTrue, whenFalse) whenTrue +#endif + +#ifdef __cplusplus +// A tag to help mark stuff deprecated (cf. QStringViewLiteral) +namespace QtPrivate { +enum class Deprecated_t {}; +constexpr inline Deprecated_t Deprecated = {}; +} +#endif + +QT_END_NAMESPACE + +#endif // QTDEPRECATIONMARKERS_H |