Add flag that skips Qml import scanning to android deployment settings
If Qml module is not found it doesn't make sense to run any functionality that is related to Qml inside androiddeployqt. Add the deployment setting option that indicates this explicitly and set it to true when Qml module is not found by CMake or by qmake. Task-number: QTBUG-106939 Pick-to: 6.4 6.2 Change-Id: I1e6cffbdd230007feffe7448617097c10238a6c9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This commit is contained in:
parent
062efb305e
commit
720d5cc1a4
@ -64,23 +64,30 @@ contains(TEMPLATE, ".*app"):!build_pass {
|
|||||||
|
|
||||||
tool_extension = ""
|
tool_extension = ""
|
||||||
contains(QMAKE_HOST.os, Windows): tool_extension = ".exe"
|
contains(QMAKE_HOST.os, Windows): tool_extension = ".exe"
|
||||||
FILE_CONTENT += " \"qml-importscanner-binary\": $$emitString($$[QT_HOST_LIBEXECS]/qmlimportscanner$${tool_extension}),"
|
|
||||||
FILE_CONTENT += " \"rcc-binary\": $$emitString($$[QT_HOST_LIBEXECS]/rcc$${tool_extension}),"
|
FILE_CONTENT += " \"rcc-binary\": $$emitString($$[QT_HOST_LIBEXECS]/rcc$${tool_extension}),"
|
||||||
|
|
||||||
qml_import_paths = $$(QML2_IMPORT_PATH)
|
contains(QT_MODULES, qml) {
|
||||||
qml_import_paths = $$split(qml_import_paths, $$DIRLIST_SEPARATOR)
|
FILE_CONTENT += " \"qml-importscanner-binary\": $$emitString($$[QT_HOST_LIBEXECS]/qmlimportscanner$${tool_extension}),"
|
||||||
qml_import_paths += $$QML_IMPORT_PATH
|
|
||||||
!isEmpty(qml_import_paths) {
|
qml_import_paths = $$(QML2_IMPORT_PATH)
|
||||||
FILE_CONTENT += " \"qml-import-paths\": $$emitString($$join(qml_import_paths, ",")),"
|
qml_import_paths = $$split(qml_import_paths, $$DIRLIST_SEPARATOR)
|
||||||
|
qml_import_paths += $$QML_IMPORT_PATH
|
||||||
|
!isEmpty(qml_import_paths) {
|
||||||
|
FILE_CONTENT += " \"qml-import-paths\": $$emitString($$join(qml_import_paths, ",")),"
|
||||||
|
}
|
||||||
|
unset(qml_import_paths)
|
||||||
|
|
||||||
|
|
||||||
|
isEmpty(QML_ROOT_PATH): \
|
||||||
|
QML_ROOT_PATH = $$_PRO_FILE_PWD_
|
||||||
|
FILE_CONTENT += " \"qml-root-path\": $$emitString($$QML_ROOT_PATH),"
|
||||||
|
} else {
|
||||||
|
FILE_CONTENT += " \"qml-skip-import-scanning\": true,"
|
||||||
}
|
}
|
||||||
unset(qml_import_paths)
|
|
||||||
|
|
||||||
!isEmpty(ANDROID_APPLICATION_ARGUMENTS): \
|
!isEmpty(ANDROID_APPLICATION_ARGUMENTS): \
|
||||||
FILE_CONTENT += " \"android-application-arguments\": $$emitString($$ANDROID_APPLICATION_ARGUMENTS),"
|
FILE_CONTENT += " \"android-application-arguments\": $$emitString($$ANDROID_APPLICATION_ARGUMENTS),"
|
||||||
|
|
||||||
isEmpty(QML_ROOT_PATH): \
|
|
||||||
QML_ROOT_PATH = $$_PRO_FILE_PWD_
|
|
||||||
FILE_CONTENT += " \"qml-root-path\": $$emitString($$QML_ROOT_PATH),"
|
|
||||||
FILE_CONTENT += " \"stdcpp-path\": $$emitString($$ANDROID_STDCPP_PATH),"
|
FILE_CONTENT += " \"stdcpp-path\": $$emitString($$ANDROID_STDCPP_PATH),"
|
||||||
!isEmpty(RESOURCES)|!isEmpty(QMLCACHE_RESOURCE_FILES) {
|
!isEmpty(RESOURCES)|!isEmpty(QMLCACHE_RESOURCE_FILES) {
|
||||||
# Make sure that qmake generated qrc files are accounted for
|
# Make sure that qmake generated qrc files are accounted for
|
||||||
|
@ -257,6 +257,9 @@ function(qt6_android_generate_deployment_settings target)
|
|||||||
|
|
||||||
if(COMMAND _qt_internal_generate_android_qml_deployment_settings)
|
if(COMMAND _qt_internal_generate_android_qml_deployment_settings)
|
||||||
_qt_internal_generate_android_qml_deployment_settings(file_contents ${target})
|
_qt_internal_generate_android_qml_deployment_settings(file_contents ${target})
|
||||||
|
else()
|
||||||
|
string(APPEND file_contents
|
||||||
|
" \"qml-skip-import-scanning\": true,\n")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Override rcc binary path
|
# Override rcc binary path
|
||||||
|
@ -218,6 +218,7 @@ struct Options
|
|||||||
|
|
||||||
// Override qml import scanner path
|
// Override qml import scanner path
|
||||||
QString qmlImportScannerBinaryPath;
|
QString qmlImportScannerBinaryPath;
|
||||||
|
bool qmlSkipImportScanning = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
static const QHash<QByteArray, QByteArray> elfArchitectures = {
|
static const QHash<QByteArray, QByteArray> elfArchitectures = {
|
||||||
@ -1035,6 +1036,12 @@ bool readInputFile(Options *options)
|
|||||||
options->extraLibs = extraLibs.toString().split(u',', Qt::SkipEmptyParts);
|
options->extraLibs = extraLibs.toString().split(u',', Qt::SkipEmptyParts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const QJsonValue qmlSkipImportScanning = jsonObject.value("qml-skip-import-scanning"_L1);
|
||||||
|
if (!qmlSkipImportScanning.isUndefined())
|
||||||
|
options->qmlSkipImportScanning = qmlSkipImportScanning.toBool();
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const QJsonValue extraPlugins = jsonObject.value("android-extra-plugins"_L1);
|
const QJsonValue extraPlugins = jsonObject.value("android-extra-plugins"_L1);
|
||||||
if (!extraPlugins.isUndefined())
|
if (!extraPlugins.isUndefined())
|
||||||
@ -2302,11 +2309,10 @@ bool readDependencies(Options *options)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((!options->rootPaths.empty() || !options->qrcFiles.isEmpty()) &&
|
if (options->qmlSkipImportScanning
|
||||||
!scanImports(options, &usedDependencies))
|
|| (options->rootPaths.empty() && options->qrcFiles.isEmpty()))
|
||||||
return false;
|
return true;
|
||||||
|
return scanImports(options, &usedDependencies);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool containsApplicationBinary(Options *options)
|
bool containsApplicationBinary(Options *options)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user