aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>2020-09-25 08:25:35 +0200
committerMitch Curtis <mitch.curtis@qt.io>2020-10-09 11:05:56 +0200
commit3ef7a9c34782fbc4e17a4d6448ee8ff1daea32ce (patch)
tree1ca19cf5ce56a2935b1aa4a96f48e6393e1a61af
parentd709f779c77b67f8f6c8ef76f108d0bceb459e6e (diff)
Fix static build
The register_types() function was optimized away by the linker and the imports would not be found. Change-Id: I3d98602daf78996399630b7b1296cc5dc0d3da05 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
-rw-r--r--src/imports/controls/.prev_CMakeLists.txt1
-rw-r--r--src/imports/controls/CMakeLists.txt1
-rw-r--r--src/imports/controls/basic/impl/qtquickcontrols2basicstyleimplplugin.cpp4
-rw-r--r--src/imports/controls/basic/qtquickcontrols2basicstyleplugin.cpp4
-rw-r--r--src/imports/controls/controls.pro2
-rw-r--r--src/imports/controls/fusion/impl/qtquickcontrols2fusionstyleimplplugin.cpp4
-rw-r--r--src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp4
-rw-r--r--src/imports/controls/imagine/impl/qtquickcontrols2imaginestyleimplplugin.cpp4
-rw-r--r--src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp4
-rw-r--r--src/imports/controls/material/impl/qtquickcontrols2materialstyleimplplugin.cpp4
-rw-r--r--src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp4
-rw-r--r--src/imports/controls/qtquickcontrols2plugin.cpp3
-rw-r--r--src/imports/controls/universal/impl/qtquickcontrols2universalstyleimplplugin.cpp4
-rw-r--r--src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp4
-rw-r--r--src/quickcontrols2/qquickdummyregistration_p.h4
-rw-r--r--src/quickcontrols2/qtquickcontrols2global.h2
16 files changed, 52 insertions, 1 deletions
diff --git a/src/imports/controls/.prev_CMakeLists.txt b/src/imports/controls/.prev_CMakeLists.txt
index d2731194..78dfae8d 100644
--- a/src/imports/controls/.prev_CMakeLists.txt
+++ b/src/imports/controls/.prev_CMakeLists.txt
@@ -30,6 +30,7 @@ qt_internal_add_qml_module(qtquickcontrols2plugin
Qt::Gui
Qt::Qml
Qt::Quick
+ Qt::QuickControls2
)
#### Keys ignored in scope 1:.:.:controls.pro:<TRUE>:
diff --git a/src/imports/controls/CMakeLists.txt b/src/imports/controls/CMakeLists.txt
index 91517ef9..c71d73b6 100644
--- a/src/imports/controls/CMakeLists.txt
+++ b/src/imports/controls/CMakeLists.txt
@@ -30,6 +30,7 @@ qt_internal_add_qml_module(qtquickcontrols2plugin
Qt::Gui
Qt::Qml
Qt::Quick
+ Qt::QuickControls2
)
#### Keys ignored in scope 1:.:.:controls.pro:<TRUE>:
diff --git a/src/imports/controls/basic/impl/qtquickcontrols2basicstyleimplplugin.cpp b/src/imports/controls/basic/impl/qtquickcontrols2basicstyleimplplugin.cpp
index 8a8bba46..b39bdb5c 100644
--- a/src/imports/controls/basic/impl/qtquickcontrols2basicstyleimplplugin.cpp
+++ b/src/imports/controls/basic/impl/qtquickcontrols2basicstyleimplplugin.cpp
@@ -36,6 +36,8 @@
#include <QtQml/qqmlextensionplugin.h>
+extern void qml_register_types_QtQuick_Controls_Basic_impl();
+
QT_BEGIN_NAMESPACE
class QtQuickControls2BasicStyleImplPlugin : public QQmlEngineExtensionPlugin
@@ -50,6 +52,8 @@ public:
QtQuickControls2BasicStyleImplPlugin::QtQuickControls2BasicStyleImplPlugin(QObject *parent)
: QQmlEngineExtensionPlugin(parent)
{
+ volatile auto registration = &::qml_register_types_QtQuick_Controls_Basic_impl;
+ Q_UNUSED(registration);
}
QT_END_NAMESPACE
diff --git a/src/imports/controls/basic/qtquickcontrols2basicstyleplugin.cpp b/src/imports/controls/basic/qtquickcontrols2basicstyleplugin.cpp
index cf5adf1c..7786223c 100644
--- a/src/imports/controls/basic/qtquickcontrols2basicstyleplugin.cpp
+++ b/src/imports/controls/basic/qtquickcontrols2basicstyleplugin.cpp
@@ -40,6 +40,8 @@
#include <QtQuickControls2/private/qquickstyleplugin_p.h>
#include <QtQuickTemplates2/private/qquicktheme_p.h>
+extern void qml_register_types_QtQuick_Controls_Basic();
+
QT_BEGIN_NAMESPACE
class QtQuickControls2BasicStylePlugin: public QQuickStylePlugin
@@ -58,6 +60,8 @@ public:
QtQuickControls2BasicStylePlugin::QtQuickControls2BasicStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
{
+ volatile auto registration = &qml_register_types_QtQuick_Controls_Basic;
+ Q_UNUSED(registration);
}
QString QtQuickControls2BasicStylePlugin::name() const
diff --git a/src/imports/controls/controls.pro b/src/imports/controls/controls.pro
index 4eb402a3..bc8c5e10 100644
--- a/src/imports/controls/controls.pro
+++ b/src/imports/controls/controls.pro
@@ -2,7 +2,7 @@ TARGET = qtquickcontrols2plugin
TARGETPATH = QtQuick/Controls
QML_IMPORT_VERSION = $$QT_VERSION
-QT += qml quick
+QT += qml quick quickcontrols2
QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private quickcontrols2impl-private
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
diff --git a/src/imports/controls/fusion/impl/qtquickcontrols2fusionstyleimplplugin.cpp b/src/imports/controls/fusion/impl/qtquickcontrols2fusionstyleimplplugin.cpp
index 56cfc151..5b02409f 100644
--- a/src/imports/controls/fusion/impl/qtquickcontrols2fusionstyleimplplugin.cpp
+++ b/src/imports/controls/fusion/impl/qtquickcontrols2fusionstyleimplplugin.cpp
@@ -36,6 +36,8 @@
#include <QtQml/qqmlextensionplugin.h>
+extern void qml_register_types_QtQuick_Controls_Fusion_impl();
+
QT_BEGIN_NAMESPACE
class QtQuickControls2FusionStyleImplPlugin : public QQmlEngineExtensionPlugin
@@ -50,6 +52,8 @@ public:
QtQuickControls2FusionStyleImplPlugin::QtQuickControls2FusionStyleImplPlugin(QObject *parent)
: QQmlEngineExtensionPlugin(parent)
{
+ volatile auto registration = &qml_register_types_QtQuick_Controls_Fusion_impl;
+ Q_UNUSED(registration);
}
QT_END_NAMESPACE
diff --git a/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp b/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp
index fcaa959e..f0d0e41a 100644
--- a/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp
+++ b/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp
@@ -41,6 +41,8 @@
#include <QtQuickControls2/private/qquickstyleplugin_p.h>
#include <QtQuickTemplates2/private/qquicktheme_p.h>
+extern void qml_register_types_QtQuick_Controls_Fusion();
+
QT_BEGIN_NAMESPACE
class QtQuickControls2FusionStylePlugin : public QQuickStylePlugin
@@ -59,6 +61,8 @@ public:
QtQuickControls2FusionStylePlugin::QtQuickControls2FusionStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
{
+ volatile auto registration = &qml_register_types_QtQuick_Controls_Fusion;
+ Q_UNUSED(registration);
}
QString QtQuickControls2FusionStylePlugin::name() const
diff --git a/src/imports/controls/imagine/impl/qtquickcontrols2imaginestyleimplplugin.cpp b/src/imports/controls/imagine/impl/qtquickcontrols2imaginestyleimplplugin.cpp
index 514d9ed8..d3b7f94e 100644
--- a/src/imports/controls/imagine/impl/qtquickcontrols2imaginestyleimplplugin.cpp
+++ b/src/imports/controls/imagine/impl/qtquickcontrols2imaginestyleimplplugin.cpp
@@ -36,6 +36,8 @@
#include <QtQml/qqmlextensionplugin.h>
+extern void qml_register_types_QtQuick_Controls_Imagine_impl();
+
QT_BEGIN_NAMESPACE
class QtQuickControls2ImagineStyleImplPlugin : public QQmlEngineExtensionPlugin
@@ -50,6 +52,8 @@ public:
QtQuickControls2ImagineStyleImplPlugin::QtQuickControls2ImagineStyleImplPlugin(QObject *parent)
: QQmlEngineExtensionPlugin(parent)
{
+ volatile auto registration = &qml_register_types_QtQuick_Controls_Imagine_impl;
+ Q_UNUSED(registration);
}
QT_END_NAMESPACE
diff --git a/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp b/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp
index 16c3f0d7..bc885cfd 100644
--- a/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp
+++ b/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp
@@ -42,6 +42,8 @@
#include <QtQuickControls2/private/qquickstyleplugin_p.h>
#include <QtQuickTemplates2/private/qquicktheme_p.h>
+extern void qml_register_types_QtQuick_Controls_Imagine();
+
QT_BEGIN_NAMESPACE
class QtQuickControls2ImagineStylePlugin : public QQuickStylePlugin
@@ -60,6 +62,8 @@ public:
QtQuickControls2ImagineStylePlugin::QtQuickControls2ImagineStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
{
+ volatile auto registration = &qml_register_types_QtQuick_Controls_Imagine;
+ Q_UNUSED(registration);
}
QString QtQuickControls2ImagineStylePlugin::name() const
diff --git a/src/imports/controls/material/impl/qtquickcontrols2materialstyleimplplugin.cpp b/src/imports/controls/material/impl/qtquickcontrols2materialstyleimplplugin.cpp
index 258ea2b6..6ac920b1 100644
--- a/src/imports/controls/material/impl/qtquickcontrols2materialstyleimplplugin.cpp
+++ b/src/imports/controls/material/impl/qtquickcontrols2materialstyleimplplugin.cpp
@@ -36,6 +36,8 @@
#include <QtQml/qqmlextensionplugin.h>
+extern void qml_register_types_QtQuick_Controls_Material_impl();
+
QT_BEGIN_NAMESPACE
class QtQuickControls2MaterialStyleImplPlugin : public QQmlEngineExtensionPlugin
@@ -50,6 +52,8 @@ public:
QtQuickControls2MaterialStyleImplPlugin::QtQuickControls2MaterialStyleImplPlugin(QObject *parent)
: QQmlEngineExtensionPlugin(parent)
{
+ volatile auto registration = &qml_register_types_QtQuick_Controls_Material_impl;
+ Q_UNUSED(registration);
}
QT_END_NAMESPACE
diff --git a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
index 095dd6d7..c8e7ebbc 100644
--- a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
+++ b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
@@ -41,6 +41,8 @@
#include <QtQuickControls2Impl/private/qquickpaddedrectangle_p.h>
#include <QtQuickTemplates2/private/qquicktheme_p.h>
+extern void qml_register_types_QtQuick_Controls_Material();
+
QT_BEGIN_NAMESPACE
class QtQuickControls2MaterialStylePlugin : public QQuickStylePlugin
@@ -59,6 +61,8 @@ public:
QtQuickControls2MaterialStylePlugin::QtQuickControls2MaterialStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
{
+ volatile auto registration = &qml_register_types_QtQuick_Controls_Material;
+ Q_UNUSED(registration);
}
QString QtQuickControls2MaterialStylePlugin::name() const
diff --git a/src/imports/controls/qtquickcontrols2plugin.cpp b/src/imports/controls/qtquickcontrols2plugin.cpp
index 2bd4047d..fcd025e0 100644
--- a/src/imports/controls/qtquickcontrols2plugin.cpp
+++ b/src/imports/controls/qtquickcontrols2plugin.cpp
@@ -41,6 +41,7 @@
#include <QtQuickControls2/private/qquickstyle_p.h>
#include <QtQuickControls2/private/qquickstyleplugin_p.h>
#include <QtQuickControls2/qquickstyle.h>
+#include <QtQuickControls2/qtquickcontrols2global.h>
QT_BEGIN_NAMESPACE
@@ -97,6 +98,8 @@ QString fallbackStyleUri()
QtQuickControls2Plugin::QtQuickControls2Plugin(QObject *parent) : QQmlExtensionPlugin(parent)
{
+ volatile auto registration = &qml_register_types_QtQuick_Controls;
+ Q_UNUSED(registration);
}
QtQuickControls2Plugin::~QtQuickControls2Plugin()
diff --git a/src/imports/controls/universal/impl/qtquickcontrols2universalstyleimplplugin.cpp b/src/imports/controls/universal/impl/qtquickcontrols2universalstyleimplplugin.cpp
index bc36be44..91c43261 100644
--- a/src/imports/controls/universal/impl/qtquickcontrols2universalstyleimplplugin.cpp
+++ b/src/imports/controls/universal/impl/qtquickcontrols2universalstyleimplplugin.cpp
@@ -36,6 +36,8 @@
#include <QtQml/qqmlextensionplugin.h>
+extern void qml_register_types_QtQuick_Controls_Universal_impl();
+
QT_BEGIN_NAMESPACE
class QtQuickControls2UniversalStyleImplPlugin : public QQmlEngineExtensionPlugin
@@ -50,6 +52,8 @@ public:
QtQuickControls2UniversalStyleImplPlugin::QtQuickControls2UniversalStyleImplPlugin(QObject *parent)
: QQmlEngineExtensionPlugin(parent)
{
+ volatile auto registration = &qml_register_types_QtQuick_Controls_Universal_impl;
+ Q_UNUSED(registration);
}
QT_END_NAMESPACE
diff --git a/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp b/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp
index 01074432..e3bbc00a 100644
--- a/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp
+++ b/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp
@@ -40,6 +40,8 @@
#include <QtQuickControls2/private/qquickstyleplugin_p.h>
#include <QtQuickTemplates2/private/qquicktheme_p.h>
+extern void qml_register_types_QtQuick_Controls_Universal();
+
QT_BEGIN_NAMESPACE
class QtQuickControls2UniversalStylePlugin : public QQuickStylePlugin
@@ -58,6 +60,8 @@ public:
QtQuickControls2UniversalStylePlugin::QtQuickControls2UniversalStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
{
+ volatile auto registration = &qml_register_types_QtQuick_Controls_Universal;
+ Q_UNUSED(registration);
}
QString QtQuickControls2UniversalStylePlugin::name() const
diff --git a/src/quickcontrols2/qquickdummyregistration_p.h b/src/quickcontrols2/qquickdummyregistration_p.h
index 4d7fe5e4..0d3b34a8 100644
--- a/src/quickcontrols2/qquickdummyregistration_p.h
+++ b/src/quickcontrols2/qquickdummyregistration_p.h
@@ -49,6 +49,10 @@
//
#include <QtQml/qqml.h>
+// Ensure that the generated qmltyperegistrations .cpp file includes this header
+// by including it here. Otherwise, the qtquickcontrols2plugin will fail to load
+// due to the type registration function's symbol being undefined.
+#include <QtQuickControls2/qtquickcontrols2global.h>
QT_BEGIN_NAMESPACE
diff --git a/src/quickcontrols2/qtquickcontrols2global.h b/src/quickcontrols2/qtquickcontrols2global.h
index 813cdbbb..e5f050ce 100644
--- a/src/quickcontrols2/qtquickcontrols2global.h
+++ b/src/quickcontrols2/qtquickcontrols2global.h
@@ -53,4 +53,6 @@ QT_BEGIN_NAMESPACE
QT_END_NAMESPACE
+Q_QUICKCONTROLS2_EXPORT void qml_register_types_QtQuick_Controls();
+
#endif // QTQUICKCONTROLS2GLOBAL_H