diff options
author | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> | 2013-11-07 13:44:52 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-11-08 12:14:31 +0100 |
commit | f0610b8b0811d459bb1a9d6c309c013c7e543f84 (patch) | |
tree | 7f8c979d3f07ecaa1c63f51fd1f09b0a027b7770 | |
parent | 611ac50c1ed80bd6c6c15f2b39e720b6f7c1acb8 (diff) |
androiddeployqt: Support default permissions/features for module
Read the permissions/features required for the module from the
dependency XML and update the default AndroidManifest.xml to
include these.
Task-number: QTBUG-33953
Change-Id: I52edce7ebf826d242fbb49dcd8069c60a1381116
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
-rw-r--r-- | src/androiddeployqt/main.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/androiddeployqt/main.cpp b/src/androiddeployqt/main.cpp index 5075a60d0..8a5e85100 100644 --- a/src/androiddeployqt/main.cpp +++ b/src/androiddeployqt/main.cpp @@ -165,6 +165,8 @@ struct Options QString temporaryDirectoryName; bool fetchedRemoteModificationDates; QHash<QString, QDateTime> remoteModificationDates; + QStringList permissions; + QStringList features; }; Options parseOptions() @@ -859,6 +861,15 @@ bool updateAndroidManifest(Options &options) replacements[QLatin1String("-- %%USE_LOCAL_QT_LIBS%% --")] = (options.deploymentMechanism != Options::Ministro) ? QString::fromLatin1("1") : QString::fromLatin1("0"); + QString permissions; + foreach (QString permission, options.permissions) + permissions += QString::fromLatin1("<uses-permission android:name=\"%1\" />\n").arg(permission); + replacements[QLatin1String("<!-- %%INSERT_PERMISSIONS -->")] = permissions; + + QString features; + foreach (QString feature, options.features) + features += QString::fromLatin1("<uses-feature android:name=\"%1\" />\n").arg(feature); + replacements[QLatin1String("<!-- %%INSERT_FEATURES -->")] = features; QString androidManifestPath = options.outputDirectory + QLatin1String("/AndroidManifest.xml"); if (!updateFile(androidManifestPath, replacements)) @@ -1102,6 +1113,12 @@ bool readAndroidDependencyXml(Options *options, if (fileName.endsWith(QLatin1String(".so"))) { remainingDependencies->insert(fileName); } + } else if (reader.name() == QLatin1String("permission")) { + QString name = reader.attributes().value(QLatin1String("name")).toString(); + options->permissions.append(name); + } else if (reader.name() == QLatin1String("feature")) { + QString name = reader.attributes().value(QLatin1String("name")).toString(); + options->features.append(name); } } } |