diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2021-10-06 12:58:03 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-10-07 12:56:27 +0000 |
commit | 13bf176006d293a9cad337be16f134428e85699d (patch) | |
tree | 9012eb7212ca7a3796eba3f840fd84bc4653f428 /dependencies.yaml | |
parent | 7c9368164c152bf3ff540d5384e557aed02fd238 (diff) |
CMake: Special case qqc2 style plugin static plugin dependencies
When an application uses a static Qt and manually links to
Qt Quick Controls 2 style plugins (bypassing qmlimportscanner),
there were some dependencies that were not automatically
linked into the app, leading to runtime failures like the following
qrc:/qt-project.org/imports/QtQuick/Controls/macOS/ComboBox.qml:39:1:
module "QtQuick.NativeStyle"
plugin "qtquickcontrols2nativestyleplugin" not found
or
qrc:/.../imports/QtQuick/Controls/Fusion/ApplicationWindow.qml:38:1:
module "QtQuick.Window" plugin "quickwindowplugin" not found
or
qrc:/.../imports/QtQuick/Controls/Fusion/ApplicationWindow.qml:41:1:
module "QtQuick.Controls.Fusion.impl"
plugin "qtquickcontrols2fusionstyleimplplugin" not found
Special case these dependencies like we did previously for the qml and
worker script plugins, by using a new helper called
_qt_internal_add_qml_static_plugin_dependency.
Each of the style plugins (except for the Basic one) import another
style plugin as a fallback, which means the fallback style needs to be
linked as well.
The macOS and Windows style import the native style, so that is added
as an extra link dependency for them.
The non-native styles also have a dependency on QtQuick.Window, which
is not linked by default even if the QtQuick plugin is linked.
Note that at least the fallback style dependencies can be considered
duplicated from the build system perspective, because they are already
mentioned in the respective qt_add_qml_module IMPORTS section.
Ideally, in a separate change, we should implement automatic calls
of _qt_internal_add_qml_static_plugin_dependency for the entries
that appear in IMPORTS, so that it also improves the situation for
public user projects that build their own static qml plugins.
This will likely depend on figuring out how to handle QTBUG-92887
first (a bidrectional mapping between qml plugin targets and URIs).
Until then, we improve the situation for cases mentioned above.
Amends 6fd1216801f078f65be2cbc748cc459cb6912a4f
Fixes: QTBUG-97099
Change-Id: Ied3f0af4a860db3f7309b993fc034a0cae9d84ae
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit 2a664028a9cbbd94f87646b609d5aad7b781d792)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'dependencies.yaml')
0 files changed, 0 insertions, 0 deletions