diff options
Diffstat (limited to 'src/corelib/plugin/qplugin.h')
-rw-r--r-- | src/corelib/plugin/qplugin.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/corelib/plugin/qplugin.h b/src/corelib/plugin/qplugin.h index affe3f5412..884f510541 100644 --- a/src/corelib/plugin/qplugin.h +++ b/src/corelib/plugin/qplugin.h @@ -155,13 +155,26 @@ void Q_CORE_EXPORT qRegisterStaticPluginFunction(QStaticPlugin staticPlugin); // Since Qt 6.3 template <auto (&PluginMetaData)> class QPluginMetaDataV2 { - struct Payload { + struct RegularPayload { QPluginMetaData::MagicHeader header = {}; quint8 payload[sizeof(PluginMetaData)] = {}; - constexpr Payload() { QPluginMetaData::copy(payload, PluginMetaData); } + constexpr RegularPayload() { QPluginMetaData::copy(payload, PluginMetaData); } }; -#define QT_PLUGIN_METADATAV2_SECTION QT_PLUGIN_METADATA_SECTION + struct StaticPayload { + QPluginMetaData::Header header = {}; + quint8 payload[sizeof(PluginMetaData)] = {}; + constexpr StaticPayload() { QPluginMetaData::copy(payload, PluginMetaData); } + }; + +#if defined(QT_STATICPLUGIN) +# define QT_PLUGIN_METADATAV2_SECTION + using Payload = StaticPayload; +#else +# define QT_PLUGIN_METADATAV2_SECTION QT_PLUGIN_METADATA_SECTION + using Payload = RegularPayload; +#endif + Payload payload = {}; public: |