diff options
Diffstat (limited to 'src/tools/androiddeployqt/main.cpp')
-rw-r--r-- | src/tools/androiddeployqt/main.cpp | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp index 7101a2bf3c..c2710c5619 100644 --- a/src/tools/androiddeployqt/main.cpp +++ b/src/tools/androiddeployqt/main.cpp @@ -164,6 +164,7 @@ struct Options QString applicationBinary; QString rootPath; QStringList qmlImportPaths; + QStringList qrcFiles; // Versioning QString versionName; @@ -415,7 +416,8 @@ Options parseOptions() } else if (argument.compare(QLatin1String("--aab"), Qt::CaseInsensitive) == 0) { options.buildAAB = true; options.build = true; - } else if (options.buildAAB && argument.compare(QLatin1String("--no-build"), Qt::CaseInsensitive) == 0) { + options.jarSigner = true; + } else if (!options.buildAAB && argument.compare(QLatin1String("--no-build"), Qt::CaseInsensitive) == 0) { options.build = false; } else if (argument.compare(QLatin1String("--install"), Qt::CaseInsensitive) == 0) { options.installApk = true; @@ -976,7 +978,10 @@ bool readInputFile(Options *options) } } } - + { + const QJsonValue qrcFiles = jsonObject.value(QLatin1String("qrcFiles")); + options->qrcFiles = qrcFiles.toString().split(QLatin1Char(','), QString::SkipEmptyParts); + } options->packageName = packageNameFromAndroidManifest(options->androidSourceDirectory + QLatin1String("/AndroidManifest.xml")); if (options->packageName.isEmpty()) options->packageName = cleanPackageName(QLatin1String("org.qtproject.example.%1").arg(options->applicationBinary)); @@ -1258,7 +1263,7 @@ bool updateLibsXml(Options *options) QFileInfo extraLibInfo(extraLib); QString name = extraLibInfo.fileName().mid(sizeof("lib") - 1); name.chop(sizeof(".so") - 1); - extraLibs += QLatin1String(" <item>%1;%2").arg(it.key(), name); + extraLibs += QLatin1String(" <item>%1;%2</item>\n").arg(it.key(), name); } } @@ -1709,6 +1714,12 @@ bool scanImports(Options *options, QSet<QString> *usedDependencies) } QString rootPath = options->rootPath; + if (!options->qrcFiles.isEmpty()) { + qmlImportScanner += QLatin1String(" -qrcFiles"); + for (const QString &qrcFile : options->qrcFiles) + qmlImportScanner += QLatin1Char(' ') + shellQuote(qrcFile); + } + if (rootPath.isEmpty()) rootPath = QFileInfo(options->inputFileName).absolutePath(); else @@ -1717,14 +1728,15 @@ bool scanImports(Options *options, QSet<QString> *usedDependencies) if (!rootPath.endsWith(QLatin1Char('/'))) rootPath += QLatin1Char('/'); + qmlImportScanner += QLatin1String(" -rootPath %1").arg(shellQuote(rootPath)); + QStringList importPaths; importPaths += shellQuote(options->qtInstallDirectory + QLatin1String("/qml")); - importPaths += shellQuote(rootPath); + if (!rootPath.isEmpty()) + importPaths += shellQuote(rootPath); for (const QString &qmlImportPath : qAsConst(options->qmlImportPaths)) importPaths += shellQuote(qmlImportPath); - - qmlImportScanner += QLatin1String(" -rootPath %1 -importPath %2") - .arg(shellQuote(rootPath), importPaths.join(QLatin1Char(' '))); + qmlImportScanner += QLatin1String(" -importPath %1").arg(importPaths.join(QLatin1Char(' '))); if (options->verbose) { fprintf(stdout, "Running qmlimportscanner with the following command: %s\n", @@ -1946,7 +1958,8 @@ bool readDependencies(Options *options) } } - if (!options->rootPath.isEmpty() && !scanImports(options, &usedDependencies)) + if ((!options->rootPath.isEmpty() || options->qrcFiles.isEmpty()) && + !scanImports(options, &usedDependencies)) return false; return true; @@ -2274,13 +2287,15 @@ static bool mergeGradleProperties(const QString &path, GradleProperties properti bool buildAndroidProject(const Options &options) { GradleProperties localProperties; - localProperties["sdk.dir"] = options.sdkPath.toLocal8Bit(); + localProperties["sdk.dir"] = QDir::fromNativeSeparators(options.sdkPath).toUtf8(); + localProperties["ndk.dir"] = QDir::fromNativeSeparators(options.ndkPath).toUtf8(); if (!mergeGradleProperties(options.outputDirectory + QLatin1String("local.properties"), localProperties)) return false; QString gradlePropertiesPath = options.outputDirectory + QLatin1String("gradle.properties"); GradleProperties gradleProperties = readGradleProperties(gradlePropertiesPath); + gradleProperties["android.bundle.enableUncompressedNativeLibs"] = "false"; gradleProperties["buildDir"] = "build"; gradleProperties["qt5AndroidDir"] = (options.qtInstallDirectory + QLatin1String("/src/android/java")).toUtf8(); gradleProperties["androidCompileSdkVersion"] = options.androidPlatform.split(QLatin1Char('-')).last().toLocal8Bit(); |