aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-06-23 17:25:52 +0200
committerUlf Hermann <ulf.hermann@qt.io>2020-07-02 17:03:24 +0200
commit7814e1dbfd09ead88951d95f72e71f45fd27c920 (patch)
tree6bad033792bffbf03f7bb7611dace1358e8a0a10 /src/imports
parent974f52fc815f62868ddfe63f7391e3090f96b226 (diff)
Make the qtquick and qtqml plugins optional
We can do the initialization and de-initialization as constructor and destructor functions. Then we don't need to load the plugins. Task-number: QTBUG-84639 Change-Id: I2aeeee7e8d028555e3af91e93518c2c2afd70dbb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/imports')
-rw-r--r--src/imports/qtqml/.prev_CMakeLists.txt9
-rw-r--r--src/imports/qtqml/CMakeLists.txt5
-rw-r--r--src/imports/qtqml/qtqml.pro2
-rw-r--r--src/imports/qtquick2/CMakeLists.txt1
-rw-r--r--src/imports/qtquick2/plugin.cpp27
-rw-r--r--src/imports/qtquick2/qmldir2
6 files changed, 14 insertions, 32 deletions
diff --git a/src/imports/qtqml/.prev_CMakeLists.txt b/src/imports/qtqml/.prev_CMakeLists.txt
index 4e17431218..52e6d3e1e0 100644
--- a/src/imports/qtqml/.prev_CMakeLists.txt
+++ b/src/imports/qtqml/.prev_CMakeLists.txt
@@ -1,12 +1,12 @@
# Generated from qtqml.pro.
set(module_dynamic_qml_imports
- QtQml.Models
+ QtQml.Models/auto
)
if (QT_FEATURE_qml_worker_script)
list(APPEND module_dynamic_qml_imports
- QtQml.WorkerScript
+ QtQml.WorkerScript/auto
)
endif()
@@ -21,6 +21,7 @@ qt_add_qml_module(qmlplugin
CLASSNAME QtQmlPlugin
SKIP_TYPE_REGISTRATION
IMPORTS ${module_dynamic_qml_imports}
+ PLUGIN_OPTIONAL
SOURCES
plugin.cpp
PUBLIC_LIBRARIES
@@ -30,7 +31,7 @@ qt_add_qml_module(qmlplugin
#### Keys ignored in scope 1:.:.:qtqml.pro:<TRUE>:
# CXX_MODULE = "qml"
-# DYNAMIC_QMLDIR = "module QtQml" "plugin qmlplugin" "classname QtQmlPlugin" "typeinfo plugins.qmltypes" "designersupported" "import QtQml.Models"
+# DYNAMIC_QMLDIR = "module QtQml" "optional plugin qmlplugin" "classname QtQmlPlugin" "typeinfo plugins.qmltypes" "designersupported" "import QtQml.Models auto"
# QML_IMPORT_VERSION = "$$QT_VERSION"
# TARGETPATH = "QtQml"
@@ -38,4 +39,4 @@ qt_add_qml_module(qmlplugin
#####################################################################
#### Keys ignored in scope 2:.:.:qtqml.pro:QT_FEATURE_qml_worker_script:
-# DYNAMIC_QMLDIR = "import QtQml.WorkerScript"
+# DYNAMIC_QMLDIR = "import QtQml.WorkerScript auto"
diff --git a/src/imports/qtqml/CMakeLists.txt b/src/imports/qtqml/CMakeLists.txt
index c33aad5cc4..8ad8c0e111 100644
--- a/src/imports/qtqml/CMakeLists.txt
+++ b/src/imports/qtqml/CMakeLists.txt
@@ -21,6 +21,7 @@ qt_add_qml_module(qmlplugin
CLASSNAME QtQmlPlugin
SKIP_TYPE_REGISTRATION
IMPORTS ${module_dynamic_qml_imports}
+ PLUGIN_OPTIONAL
SOURCES
plugin.cpp
PUBLIC_LIBRARIES
@@ -31,7 +32,7 @@ qt_add_qml_module(qmlplugin
#### Keys ignored in scope 1:.:.:qtqml.pro:<TRUE>:
# CXX_MODULE = "qml"
-# DYNAMIC_QMLDIR = "module QtQml" "plugin qmlplugin" "classname QtQmlPlugin" "typeinfo plugins.qmltypes" "designersupported" "import QtQml.Models"
+# DYNAMIC_QMLDIR = "module QtQml" "optional plugin qmlplugin" "classname QtQmlPlugin" "typeinfo plugins.qmltypes" "designersupported" "import QtQml.Models auto"
# QML_IMPORT_VERSION = "$$QT_VERSION"
# TARGETPATH = "QtQml"
@@ -39,4 +40,4 @@ qt_add_qml_module(qmlplugin
#####################################################################
#### Keys ignored in scope 2:.:.:qtqml.pro:QT_FEATURE_qml_worker_script:
-# DYNAMIC_QMLDIR = "import QtQml.WorkerScript"
+# DYNAMIC_QMLDIR = "import QtQml.WorkerScript auto"
diff --git a/src/imports/qtqml/qtqml.pro b/src/imports/qtqml/qtqml.pro
index ca162e65a9..d32c7ad341 100644
--- a/src/imports/qtqml/qtqml.pro
+++ b/src/imports/qtqml/qtqml.pro
@@ -11,7 +11,7 @@ QT = qml-private qmlmodels-private
DYNAMIC_QMLDIR = \
"module QtQml" \
- "plugin qmlplugin" \
+ "optional plugin qmlplugin" \
"classname QtQmlPlugin" \
"typeinfo plugins.qmltypes" \
"designersupported" \
diff --git a/src/imports/qtquick2/CMakeLists.txt b/src/imports/qtquick2/CMakeLists.txt
index 1da9bad480..aed797189a 100644
--- a/src/imports/qtquick2/CMakeLists.txt
+++ b/src/imports/qtquick2/CMakeLists.txt
@@ -12,6 +12,7 @@ qt_add_qml_module(qtquick2plugin
SKIP_TYPE_REGISTRATION
IMPORTS
QtQml/auto
+ PLUGIN_OPTIONAL
SOURCES
plugin.cpp
PUBLIC_LIBRARIES
diff --git a/src/imports/qtquick2/plugin.cpp b/src/imports/qtquick2/plugin.cpp
index dde0b7207a..414d9e29f5 100644
--- a/src/imports/qtquick2/plugin.cpp
+++ b/src/imports/qtquick2/plugin.cpp
@@ -38,42 +38,21 @@
****************************************************************************/
#include <QtQml/qqmlextensionplugin.h>
-#include <QtQml/QQmlEngine>
-
-#include <private/qtquick2_p.h>
+#include <private/qtquickglobal_p.h>
QT_BEGIN_NAMESPACE
-//![class decl]
-class QtQuick2Plugin : public QQmlExtensionPlugin
+class QtQuick2Plugin : public QQmlEngineExtensionPlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
- QtQuick2Plugin(QObject *parent = nullptr) : QQmlExtensionPlugin(parent)
+ QtQuick2Plugin(QObject *parent = nullptr) : QQmlEngineExtensionPlugin(parent)
{
volatile auto registration = &qml_register_types_QtQuick;
Q_UNUSED(registration);
}
-
- void registerTypes(const char *uri) override
- {
- Q_ASSERT(QLatin1String(uri) == QLatin1String("QtQuick"));
- Q_UNUSED(uri);
- moduleDefined = true;
- QQmlQtQuick2Module::defineModule();
- }
-
- void unregisterTypes() override
- {
- if (moduleDefined)
- QQmlQtQuick2Module::undefineModule();
- moduleDefined = false;
- }
-
- bool moduleDefined = false;
};
-//![class decl]
QT_END_NAMESPACE
diff --git a/src/imports/qtquick2/qmldir b/src/imports/qtquick2/qmldir
index b5c754a36f..3dbf9d4f2c 100644
--- a/src/imports/qtquick2/qmldir
+++ b/src/imports/qtquick2/qmldir
@@ -1,5 +1,5 @@
module QtQuick
-plugin qtquick2plugin
+optional plugin qtquick2plugin
classname QtQuick2Plugin
typeinfo plugins.qmltypes
designersupported