summaryrefslogtreecommitdiff
path: root/src/androiddeployqt/main.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-08-04 09:03:50 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-08-05 10:05:02 +0200
commit7dddd9f30123c020cedf68ef76378cfe7b5216bf (patch)
tree0e4c2d0750044aec417f9745aa2d82887f49c69c /src/androiddeployqt/main.cpp
parent59806415ea691e43ef6e3be541f94cf6238d44a5 (diff)
parentb11dcfb0f185483224555c69761bb7e2280e7513 (diff)
downloadqttools-7dddd9f30123c020cedf68ef76378cfe7b5216bf.tar.gz
Merge remote-tracking branch 'origin/5.3' into dev
Manually adjusted src/androiddeployqt/main.cpp after 73e4f9593abecad68b39bbf68564a92dff5222e6 Patch by BogDan Vatra. Change-Id: Idcf4ae7f54346119ee09001b1b55225a08dd9b21
Diffstat (limited to 'src/androiddeployqt/main.cpp')
-rw-r--r--src/androiddeployqt/main.cpp32
1 files changed, 29 insertions, 3 deletions
diff --git a/src/androiddeployqt/main.cpp b/src/androiddeployqt/main.cpp
index 8caf8e9da..64a1fd02c 100644
--- a/src/androiddeployqt/main.cpp
+++ b/src/androiddeployqt/main.cpp
@@ -139,6 +139,7 @@ struct Options
// External tools
QString sdkPath;
+ QString sdkBuildToolsVersion;
QString ndkPath;
QString antTool;
QString jdkPath;
@@ -648,13 +649,20 @@ bool readInputFile(Options *options)
return false;
} else {
if (!QDir(options->sdkPath + QLatin1String("/platforms/") + options->androidPlatform).exists()) {
- fprintf(stderr, "Warning: Android platform '%s' does not exist in NDK.\n",
+ fprintf(stderr, "Warning: Android platform '%s' does not exist in SDK.\n",
qPrintable(options->androidPlatform));
}
}
}
{
+
+ QJsonValue value = jsonObject.value("sdkBuildToolsRevision");
+ if (!value.isUndefined())
+ options->sdkBuildToolsVersion = value.toString();
+ }
+
+ {
QJsonValue qtInstallDirectory = jsonObject.value("qt");
if (qtInstallDirectory.isUndefined()) {
fprintf(stderr, "No Qt directory in json file %s\n", qPrintable(options->inputFileName));
@@ -1460,6 +1468,18 @@ bool readDependencies(Options *options)
if (!readDependenciesFromElf(options, options->applicationBinary, &usedDependencies, &remainingDependencies))
return false;
+ // Until we have support non-gui applications on Android, always add Qt Gui
+ // as a dependency (otherwise the platform plugin cannot be deployed, and
+ // the application will not run).
+ QLatin1String guiLib("lib/libQt5Gui.so");
+ if (!usedDependencies.contains(guiLib)) {
+ QtDependency dep(guiLib, options->qtInstallDirectory + QLatin1Char('/') + guiLib);
+ options->qtDependencies.append(dep);
+ usedDependencies.insert(guiLib);
+ if (!readAndroidDependencyXml(options, QLatin1String("Qt5Gui"), &usedDependencies, &remainingDependencies))
+ return false;
+ }
+
QString qtDir = options->qtInstallDirectory + QLatin1Char('/');
while (!remainingDependencies.isEmpty()) {
@@ -2171,8 +2191,14 @@ bool signPackage(const Options &options)
#endif
if (!QFile::exists(zipAlignTool)) {
- fprintf(stderr, "zipalign tool not found: %s\n", qPrintable(zipAlignTool));
- return false;
+ zipAlignTool = options.sdkPath + QLatin1String("/build-tools/") + options.sdkBuildToolsVersion + QLatin1String("/zipalign");
+#if defined(Q_OS_WIN32)
+ zipAlignTool += QLatin1String(".exe");
+#endif
+ if (!QFile::exists(zipAlignTool)) {
+ fprintf(stderr, "zipalign tool not found: %s\n", qPrintable(zipAlignTool));
+ return false;
+ }
}
zipAlignTool = QString::fromLatin1("%1%2 -f 4 %3 %4")