diff options
author | Craig Scott <craig.scott@qt.io> | 2021-08-16 15:10:38 +1000 |
---|---|---|
committer | Craig Scott <craig.scott@qt.io> | 2021-08-20 09:29:30 +1000 |
commit | a25f650c317e4886007a8beb0e9f2f7e973e6e7c (patch) | |
tree | 575ecdbf3bf260af31eef3c5df4adc45556d789b /tests/auto/qml/qmlimportscanner/data | |
parent | 30e6bb35e48207a994dd4e49ca999d45266a04f5 (diff) |
Allow QML plugin's CMake target name to be specified for qmldir file
The current code assumes that the basename of the QML plugin is the
same as the CMake target it corresponds to. This won't be the case for
installed Qt packages due to the installed name including a namespace.
It also won't match when a Qt library infix is used. The current code
works around the former by trying to heuristically work out whether
a namespaced Qt target exists for the plugin. The Qt library infix is
more problematic because the plugin target name won't include the
infix whereas the plugin library basename will.
Address both of those issues by adding an internal option
INSTALLED_PLUGIN_TARGET to qt6_add_qml_module() which allows the
installed target name to be provided. When included in a qmldir file,
qt6_import_qml_plugin() will use that name, otherwise it will fall
back to using the plugin library's basename, as per the current
behavior. The option may become public in the future, but for now it
is only for Qt's internal use for the 6.2 release.
Fixes: QTBUG-95140
Pick-to: 6.2
Change-Id: I5a057c80b70ee802c0f0840e9eea2e579193d126
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'tests/auto/qml/qmlimportscanner/data')
16 files changed, 88 insertions, 28 deletions
diff --git a/tests/auto/qml/qmlimportscanner/data/CompositeSingleton.json b/tests/auto/qml/qmlimportscanner/data/CompositeSingleton.json index f8ac3438f9..4978bb1d77 100644 --- a/tests/auto/qml/qmlimportscanner/data/CompositeSingleton.json +++ b/tests/auto/qml/qmlimportscanner/data/CompositeSingleton.json @@ -6,22 +6,25 @@ }, { "classname": "QtQuick2Plugin", + "linkTarget": "Qt6::qtquick2plugin", "name": "QtQuick", - "plugin": "qtquick2plugin", + "plugin": "qtquickplugin", "pluginIsOptional": true, "relativePath": "QtQuick", "type": "module" }, { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -30,6 +33,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/CompositeWithEnum.json b/tests/auto/qml/qmlimportscanner/data/CompositeWithEnum.json index 92d6797bec..9afc620f17 100644 --- a/tests/auto/qml/qmlimportscanner/data/CompositeWithEnum.json +++ b/tests/auto/qml/qmlimportscanner/data/CompositeWithEnum.json @@ -6,14 +6,16 @@ }, { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -22,6 +24,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/CompositeWithinSingleton.json b/tests/auto/qml/qmlimportscanner/data/CompositeWithinSingleton.json index ceed744ea4..274ee20a97 100644 --- a/tests/auto/qml/qmlimportscanner/data/CompositeWithinSingleton.json +++ b/tests/auto/qml/qmlimportscanner/data/CompositeWithinSingleton.json @@ -6,22 +6,25 @@ }, { "classname": "QtQuick2Plugin", + "linkTarget": "Qt6::qtquick2plugin", "name": "QtQuick", - "plugin": "qtquick2plugin", + "plugin": "qtquickplugin", "pluginIsOptional": true, "relativePath": "QtQuick", "type": "module" }, { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -30,6 +33,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/Drawer.qml.json b/tests/auto/qml/qmlimportscanner/data/Drawer.qml.json index 4eac05306a..efc104cb69 100644 --- a/tests/auto/qml/qmlimportscanner/data/Drawer.qml.json +++ b/tests/auto/qml/qmlimportscanner/data/Drawer.qml.json @@ -1,14 +1,16 @@ [ { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -17,6 +19,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/Imports.json b/tests/auto/qml/qmlimportscanner/data/Imports.json index 1a1850163d..d1410cb626 100644 --- a/tests/auto/qml/qmlimportscanner/data/Imports.json +++ b/tests/auto/qml/qmlimportscanner/data/Imports.json @@ -6,22 +6,25 @@ }, { "classname": "QtQuick2Plugin", + "linkTarget": "Qt6::qtquick2plugin", "name": "QtQuick", - "plugin": "qtquick2plugin", + "plugin": "qtquickplugin", "pluginIsOptional": true, "relativePath": "QtQuick", "type": "module" }, { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -30,6 +33,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/ListProperty.qml.json b/tests/auto/qml/qmlimportscanner/data/ListProperty.qml.json index d647f7f9ae..c49f02e710 100644 --- a/tests/auto/qml/qmlimportscanner/data/ListProperty.qml.json +++ b/tests/auto/qml/qmlimportscanner/data/ListProperty.qml.json @@ -2,7 +2,8 @@ { "classname": "QtQuick2Plugin", "name": "QtQuick", - "plugin": "qtquick2plugin", + "linkTarget": "Qt6::qtquick2plugin", + "plugin": "qtquickplugin", "pluginIsOptional": true, "relativePath": "QtQuick", "type": "module" @@ -15,14 +16,16 @@ }, { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -31,6 +34,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/QTBUG-45916.js.json b/tests/auto/qml/qmlimportscanner/data/QTBUG-45916.js.json index f7bddd6a91..948a629903 100644 --- a/tests/auto/qml/qmlimportscanner/data/QTBUG-45916.js.json +++ b/tests/auto/qml/qmlimportscanner/data/QTBUG-45916.js.json @@ -1,22 +1,25 @@ [ { "classname": "QtQuick2Plugin", + "linkTarget": "Qt6::qtquick2plugin", "name": "QtQuick", - "plugin": "qtquick2plugin", + "plugin": "qtquickplugin", "pluginIsOptional": true, "relativePath": "QtQuick", "type": "module" }, { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -25,6 +28,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/Simple.qml.json b/tests/auto/qml/qmlimportscanner/data/Simple.qml.json index f7bddd6a91..948a629903 100644 --- a/tests/auto/qml/qmlimportscanner/data/Simple.qml.json +++ b/tests/auto/qml/qmlimportscanner/data/Simple.qml.json @@ -1,22 +1,25 @@ [ { "classname": "QtQuick2Plugin", + "linkTarget": "Qt6::qtquick2plugin", "name": "QtQuick", - "plugin": "qtquick2plugin", + "plugin": "qtquickplugin", "pluginIsOptional": true, "relativePath": "QtQuick", "type": "module" }, { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -25,6 +28,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/Singleton.json b/tests/auto/qml/qmlimportscanner/data/Singleton.json index ca1d0b2d4d..ad8e6dc0ec 100644 --- a/tests/auto/qml/qmlimportscanner/data/Singleton.json +++ b/tests/auto/qml/qmlimportscanner/data/Singleton.json @@ -6,22 +6,25 @@ }, { "classname": "QtQuick2Plugin", + "linkTarget": "Qt6::qtquick2plugin", "name": "QtQuick", - "plugin": "qtquick2plugin", + "plugin": "qtquickplugin", "pluginIsOptional": true, "relativePath": "QtQuick", "type": "module" }, { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -30,6 +33,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/Things.json b/tests/auto/qml/qmlimportscanner/data/Things.json index e50902152e..27814e1246 100644 --- a/tests/auto/qml/qmlimportscanner/data/Things.json +++ b/tests/auto/qml/qmlimportscanner/data/Things.json @@ -7,22 +7,25 @@ }, { "classname": "QtQuick2Plugin", + "linkTarget": "Qt6::qtquick2plugin", "name": "QtQuick", - "plugin": "qtquick2plugin", + "plugin": "qtquickplugin", "pluginIsOptional": true, "relativePath": "QtQuick", "type": "module" }, { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -31,6 +34,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/javascriptMethods.qml.json b/tests/auto/qml/qmlimportscanner/data/javascriptMethods.qml.json index cbd409266d..5cd9f6dea0 100644 --- a/tests/auto/qml/qmlimportscanner/data/javascriptMethods.qml.json +++ b/tests/auto/qml/qmlimportscanner/data/javascriptMethods.qml.json @@ -1,8 +1,9 @@ [ { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" @@ -13,6 +14,7 @@ }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -21,6 +23,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/localImport.qml.json b/tests/auto/qml/qmlimportscanner/data/localImport.qml.json index e50902152e..27814e1246 100644 --- a/tests/auto/qml/qmlimportscanner/data/localImport.qml.json +++ b/tests/auto/qml/qmlimportscanner/data/localImport.qml.json @@ -7,22 +7,25 @@ }, { "classname": "QtQuick2Plugin", + "linkTarget": "Qt6::qtquick2plugin", "name": "QtQuick", - "plugin": "qtquick2plugin", + "plugin": "qtquickplugin", "pluginIsOptional": true, "relativePath": "QtQuick", "type": "module" }, { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -31,6 +34,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/parentEnum.qml.json b/tests/auto/qml/qmlimportscanner/data/parentEnum.qml.json index f7bddd6a91..948a629903 100644 --- a/tests/auto/qml/qmlimportscanner/data/parentEnum.qml.json +++ b/tests/auto/qml/qmlimportscanner/data/parentEnum.qml.json @@ -1,22 +1,25 @@ [ { "classname": "QtQuick2Plugin", + "linkTarget": "Qt6::qtquick2plugin", "name": "QtQuick", - "plugin": "qtquick2plugin", + "plugin": "qtquickplugin", "pluginIsOptional": true, "relativePath": "QtQuick", "type": "module" }, { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -25,6 +28,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/qmldirImportAndDepend.qml.json b/tests/auto/qml/qmlimportscanner/data/qmldirImportAndDepend.qml.json index e50902152e..27814e1246 100644 --- a/tests/auto/qml/qmlimportscanner/data/qmldirImportAndDepend.qml.json +++ b/tests/auto/qml/qmlimportscanner/data/qmldirImportAndDepend.qml.json @@ -7,22 +7,25 @@ }, { "classname": "QtQuick2Plugin", + "linkTarget": "Qt6::qtquick2plugin", "name": "QtQuick", - "plugin": "qtquick2plugin", + "plugin": "qtquickplugin", "pluginIsOptional": true, "relativePath": "QtQuick", "type": "module" }, { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -31,6 +34,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/qtQmlOnly.qml.json b/tests/auto/qml/qmlimportscanner/data/qtQmlOnly.qml.json index 4eac05306a..efc104cb69 100644 --- a/tests/auto/qml/qmlimportscanner/data/qtQmlOnly.qml.json +++ b/tests/auto/qml/qmlimportscanner/data/qtQmlOnly.qml.json @@ -1,14 +1,16 @@ [ { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -17,6 +19,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, diff --git a/tests/auto/qml/qmlimportscanner/data/rootPath.json b/tests/auto/qml/qmlimportscanner/data/rootPath.json index 21dbb12629..7abce5675b 100644 --- a/tests/auto/qml/qmlimportscanner/data/rootPath.json +++ b/tests/auto/qml/qmlimportscanner/data/rootPath.json @@ -1,22 +1,25 @@ [ { "classname": "QtQuick2Plugin", + "linkTarget": "Qt6::qtquick2plugin", "name": "QtQuick", - "plugin": "qtquick2plugin", + "plugin": "qtquickplugin", "pluginIsOptional": true, "relativePath": "QtQuick", "type": "module" }, { "classname": "QtQmlPlugin", + "linkTarget": "Qt6::qmlplugin", "name": "QtQml", - "plugin": "qmlplugin", + "plugin": "qtqmlplugin", "pluginIsOptional": true, "relativePath": "QtQml", "type": "module" }, { "classname": "QtQmlModelsPlugin", + "linkTarget": "Qt6::modelsplugin", "name": "QtQml.Models", "plugin": "modelsplugin", "pluginIsOptional": true, @@ -25,6 +28,7 @@ }, { "classname": "QtQmlWorkerScriptPlugin", + "linkTarget": "Qt6::workerscriptplugin", "name": "QtQml.WorkerScript", "plugin": "workerscriptplugin", "pluginIsOptional": true, |