5a5bc86028
This patch improves the QT_INLINE_SINCE(maj, min) macro to take deprecation version into account. If the specified (maj, min) version is less than or equal to the version defined by QT_DISABLE_DEPRECATED_BEFORE, the macro will expand to "inline", and the out-of-line fallback will be removed from the library. This is achieved by introducing the helper QT_IF_DEPRECATED_SINCE(major, minor, whenTrue, whenFalse) macro. Fixes: QTBUG-104131 Pick-to: 6.4 Change-Id: I285029dad7b71126072b024a3be6d7b11341996d Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
48 lines
1.8 KiB
C
48 lines
1.8 KiB
C
// 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 @header_base_name_upper@_H
|
|
#define @header_base_name_upper@_H
|
|
|
|
#include <QtCore/qglobal.h>
|
|
|
|
#if defined(QT_SHARED) || !defined(QT_STATIC)
|
|
# if defined(QT_BUILD_@module_define_infix@_LIB)
|
|
# define Q_@module_define_infix@_EXPORT Q_DECL_EXPORT
|
|
# else
|
|
# define Q_@module_define_infix@_EXPORT Q_DECL_IMPORT
|
|
# endif
|
|
#else
|
|
# define Q_@module_define_infix@_EXPORT
|
|
#endif
|
|
|
|
#if !defined(QT_BUILD_@module_define_infix@_LIB) || defined(QT_STATIC)
|
|
/* outside library → inline decl + defi */
|
|
# define QT_@module_define_infix@_INLINE_SINCE(major, minor) inline
|
|
# define QT_@module_define_infix@_INLINE_IMPL_SINCE(major, minor) 1
|
|
#elif defined(QT_@module_define_infix@_BUILD_REMOVED_API)
|
|
/* inside library, inside removed_api.cpp:
|
|
* keep deprecated API → non-inline decl;
|
|
* remove deprecated API → inline decl;
|
|
* definition is always available */
|
|
# define QT_@module_define_infix@_INLINE_SINCE(major, minor) \
|
|
QT_IF_DEPRECATED_SINCE(major, minor, inline, /* not inline */)
|
|
# define QT_@module_define_infix@_INLINE_IMPL_SINCE(major, minor) 1
|
|
#else
|
|
/* inside library, outside removed_api.cpp:
|
|
* keep deprecated API → non-inline decl, no defi;
|
|
* remove deprecated API → inline decl, defi */
|
|
# define QT_@module_define_infix@_INLINE_SINCE(major, minor) \
|
|
QT_IF_DEPRECATED_SINCE(major, minor, inline, /* not inline */)
|
|
# define QT_@module_define_infix@_INLINE_IMPL_SINCE(major, minor) \
|
|
QT_IF_DEPRECATED_SINCE(major, minor, 1, 0)
|
|
#endif
|
|
|
|
#ifdef QT_@module_define_infix@_BUILD_REMOVED_API
|
|
# define QT_@module_define_infix@_REMOVED_SINCE(major, minor) QT_DEPRECATED_SINCE(major, minor)
|
|
#else
|
|
# define QT_@module_define_infix@_REMOVED_SINCE(major, minor) 0
|
|
#endif
|
|
|
|
#endif // @header_base_name_upper@_H
|