Move Qt 6/7 specific macros to qtversionchecks.h
Task-number: QTBUG-99313 Change-Id: I57032bf5d0edcb7345267512e12837b1d90d1485 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
This commit is contained in:
parent
df1db826cb
commit
85414ac6c0
@ -33,58 +33,6 @@
|
||||
#include <QtCore/qtconfigmacros.h>
|
||||
#include <QtCore/qtcoreexports.h>
|
||||
|
||||
/*
|
||||
helper macros to make some simple code work active in Qt 6 or Qt 7 only,
|
||||
like:
|
||||
struct QT6_ONLY(Q_CORE_EXPORT) QTrivialClass
|
||||
{
|
||||
void QT7_ONLY(Q_CORE_EXPORT) void operate();
|
||||
}
|
||||
*/
|
||||
#if QT_VERSION_MAJOR == 7
|
||||
# define QT7_ONLY(...) __VA_ARGS__
|
||||
# define QT6_ONLY(...)
|
||||
#elif QT_VERSION_MAJOR == 6
|
||||
# define QT7_ONLY(...)
|
||||
# define QT6_ONLY(...) __VA_ARGS__
|
||||
#else
|
||||
# error Qt major version not 6 or 7
|
||||
#endif
|
||||
|
||||
/* Macro and tag type to help overload resolution on functions
|
||||
that are, e.g., QT_REMOVED_SINCE'ed. Example use:
|
||||
|
||||
#if QT_CORE_REMOVED_SINCE(6, 4)
|
||||
int size() const;
|
||||
#endif
|
||||
qsizetype size(QT6_DECL_NEW_OVERLOAD) const;
|
||||
|
||||
in the normal cpp file:
|
||||
|
||||
qsizetype size(QT6_IMPL_NEW_OVERLOAD) const {
|
||||
~~~
|
||||
}
|
||||
|
||||
in removed_api.cpp:
|
||||
|
||||
int size() const { return int(size(QT6_CALL_NEW_OVERLOAD)); }
|
||||
*/
|
||||
#ifdef Q_CLANG_QDOC
|
||||
# define QT6_DECL_NEW_OVERLOAD
|
||||
# define QT6_DECL_NEW_OVERLOAD_TAIL
|
||||
# define QT6_IMPL_NEW_OVERLOAD
|
||||
# define QT6_IMPL_NEW_OVERLOAD_TAIL
|
||||
# define QT6_CALL_NEW_OVERLOAD
|
||||
# define QT6_CALL_NEW_OVERLOAD_TAIL
|
||||
#else
|
||||
# define QT6_DECL_NEW_OVERLOAD QT6_ONLY(Qt::Disambiguated_t = Qt::Disambiguated)
|
||||
# define QT6_DECL_NEW_OVERLOAD_TAIL QT6_ONLY(, QT6_DECL_NEW_OVERLOAD)
|
||||
# define QT6_IMPL_NEW_OVERLOAD QT6_ONLY(Qt::Disambiguated_t)
|
||||
# define QT6_IMPL_NEW_OVERLOAD_TAIL QT6_ONLY(, QT6_IMPL_NEW_OVERLOAD)
|
||||
# define QT6_CALL_NEW_OVERLOAD QT6_ONLY(Qt::Disambiguated)
|
||||
# define QT6_CALL_NEW_OVERLOAD_TAIL QT6_ONLY(, QT6_CALL_NEW_OVERLOAD)
|
||||
#endif
|
||||
|
||||
/* These two macros makes it possible to turn the builtin line expander into a
|
||||
* string literal. */
|
||||
#define QT_STRINGIFY2(x) #x
|
||||
|
@ -9,6 +9,13 @@
|
||||
#pragma qt_sync_stop_processing
|
||||
#endif
|
||||
|
||||
#ifdef QT_BOOTSTRAPPED
|
||||
#include <QtCore/qconfig-bootstrapped.h>
|
||||
#else
|
||||
#include <QtCore/qconfig.h>
|
||||
#include <QtCore/qtcore-config.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
QT_VERSION is (major << 16) | (minor << 8) | patch.
|
||||
*/
|
||||
@ -18,4 +25,56 @@
|
||||
*/
|
||||
#define QT_VERSION_CHECK(major, minor, patch) ((major<<16)|(minor<<8)|(patch))
|
||||
|
||||
/*
|
||||
Helper macros to make some simple code active in Qt 6 or Qt 7 only,
|
||||
like:
|
||||
struct QT6_ONLY(Q_CORE_EXPORT) QTrivialClass
|
||||
{
|
||||
void QT7_ONLY(Q_CORE_EXPORT) void operate();
|
||||
}
|
||||
*/
|
||||
#if QT_VERSION_MAJOR == 7
|
||||
# define QT7_ONLY(...) __VA_ARGS__
|
||||
# define QT6_ONLY(...)
|
||||
#elif QT_VERSION_MAJOR == 6
|
||||
# define QT7_ONLY(...)
|
||||
# define QT6_ONLY(...) __VA_ARGS__
|
||||
#else
|
||||
# error Qt major version not 6 or 7
|
||||
#endif
|
||||
|
||||
/* Macro and tag type to help overload resolution on functions
|
||||
that are, e.g., QT_REMOVED_SINCE'ed. Example use:
|
||||
|
||||
#if QT_CORE_REMOVED_SINCE(6, 4)
|
||||
int size() const;
|
||||
#endif
|
||||
qsizetype size(QT6_DECL_NEW_OVERLOAD) const;
|
||||
|
||||
in the normal cpp file:
|
||||
|
||||
qsizetype size(QT6_IMPL_NEW_OVERLOAD) const {
|
||||
~~~
|
||||
}
|
||||
|
||||
in removed_api.cpp:
|
||||
|
||||
int size() const { return int(size(QT6_CALL_NEW_OVERLOAD)); }
|
||||
*/
|
||||
#ifdef Q_CLANG_QDOC
|
||||
# define QT6_DECL_NEW_OVERLOAD
|
||||
# define QT6_DECL_NEW_OVERLOAD_TAIL
|
||||
# define QT6_IMPL_NEW_OVERLOAD
|
||||
# define QT6_IMPL_NEW_OVERLOAD_TAIL
|
||||
# define QT6_CALL_NEW_OVERLOAD
|
||||
# define QT6_CALL_NEW_OVERLOAD_TAIL
|
||||
#else
|
||||
# define QT6_DECL_NEW_OVERLOAD QT6_ONLY(Qt::Disambiguated_t = Qt::Disambiguated)
|
||||
# define QT6_DECL_NEW_OVERLOAD_TAIL QT6_ONLY(, QT6_DECL_NEW_OVERLOAD)
|
||||
# define QT6_IMPL_NEW_OVERLOAD QT6_ONLY(Qt::Disambiguated_t)
|
||||
# define QT6_IMPL_NEW_OVERLOAD_TAIL QT6_ONLY(, QT6_IMPL_NEW_OVERLOAD)
|
||||
# define QT6_CALL_NEW_OVERLOAD QT6_ONLY(Qt::Disambiguated)
|
||||
# define QT6_CALL_NEW_OVERLOAD_TAIL QT6_ONLY(, QT6_CALL_NEW_OVERLOAD)
|
||||
#endif
|
||||
|
||||
#endif /* QTVERSIONCHECKS_H */
|
||||
|
Loading…
x
Reference in New Issue
Block a user