diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2020-06-23 17:25:52 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2020-07-02 17:03:24 +0200 |
commit | 7814e1dbfd09ead88951d95f72e71f45fd27c920 (patch) | |
tree | 6bad033792bffbf03f7bb7611dace1358e8a0a10 /src/imports | |
parent | 974f52fc815f62868ddfe63f7391e3090f96b226 (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.txt | 9 | ||||
-rw-r--r-- | src/imports/qtqml/CMakeLists.txt | 5 | ||||
-rw-r--r-- | src/imports/qtqml/qtqml.pro | 2 | ||||
-rw-r--r-- | src/imports/qtquick2/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/imports/qtquick2/plugin.cpp | 27 | ||||
-rw-r--r-- | src/imports/qtquick2/qmldir | 2 |
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 |