summaryrefslogtreecommitdiffstats
path: root/src/corelib/plugin/qplugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/plugin/qplugin.h')
-rw-r--r--src/corelib/plugin/qplugin.h19
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: