42670c7c45
Some modules, such as Qt Multimedia, needs special permissions to avoid getting exceptions at run-time. We should apply these by default to the AndroidManifest.xml so that an application using e.g. the camera will work out of the box. Task-number: QTBUG-33953 Change-Id: Ibc1f086d249197b63e7ed1075ae7d54bdd1212f2 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com> Reviewed-by: Christian Stromme <christian.stromme@digia.com>
91 lines
3.2 KiB
Plaintext
91 lines
3.2 KiB
Plaintext
|
|
# W A R N I N G
|
|
# -------------
|
|
#
|
|
# This file is not part of the Qt API. It exists purely as an
|
|
# implementation detail. It may change from version to version
|
|
# without notice, or even be removed.
|
|
#
|
|
# We mean it.
|
|
#
|
|
|
|
# Generates an xml file to match the library in lib/ listing the dependencies
|
|
# of the module on JNI-based libraries etc. Used for deployment of an Android
|
|
# app.
|
|
|
|
ANDROID_DEPENDS_DIR = $$MODULE_BASE_OUTDIR/lib/
|
|
DEPENDENCY_FILE = $$ANDROID_DEPENDS_DIR$$TARGET-android-dependencies.xml
|
|
|
|
!build_pass {
|
|
!isEmpty(MODULE_PLUGIN_TYPES) {
|
|
for(PLUGIN_TYPE, MODULE_PLUGIN_TYPES) {
|
|
ANDROID_BUNDLED_FILES += "plugins/$$PLUGIN_TYPE"
|
|
}
|
|
}
|
|
|
|
!isEmpty(ANDROID_JAR_DEPENDENCIES) {
|
|
for(JAR_FILE, ANDROID_JAR_DEPENDENCIES) {
|
|
INIT_CLASS = $$section(JAR_FILE, ":", 1, 1)
|
|
!isEmpty(INIT_CLASS): INIT_CLASS = "initClass=\"$$INIT_CLASS\""
|
|
JAR_FILE = $$section(JAR_FILE, ":", 0, 0)
|
|
FILE_CONTENT += "<jar file=\"$$JAR_FILE\" $$INIT_CLASS />"
|
|
}
|
|
}
|
|
|
|
!isEmpty(ANDROID_BUNDLED_JAR_DEPENDENCIES) {
|
|
for(JAR_FILE, ANDROID_BUNDLED_JAR_DEPENDENCIES) {
|
|
INIT_CLASS = $$section(JAR_FILE, ":", 1, 1)
|
|
!isEmpty(INIT_CLASS): INIT_CLASS = "initClass=\"$$INIT_CLASS\""
|
|
JAR_FILE = $$section(JAR_FILE, ":", 0, 0)
|
|
FILE_CONTENT += "<jar bundling=\"1\" file=\"$$JAR_FILE\" $$INIT_CLASS />"
|
|
}
|
|
}
|
|
|
|
!isEmpty(ANDROID_LIB_DEPENDENCIES) {
|
|
for(LIB_FILE, ANDROID_LIB_DEPENDENCIES) {
|
|
EXTENDS = $$section(LIB_FILE, ":", 1, 1)
|
|
!isEmpty(EXTENDS): EXTENDS = "extends=\"$$EXTENDS\""
|
|
LIB_FILE = $$section(LIB_FILE, ":", 0, 0)
|
|
FILE_CONTENT += "<lib file=\"$$LIB_FILE\" $$EXTENDS />"
|
|
}
|
|
}
|
|
|
|
!isEmpty(ANDROID_LIB_DEPENDENCY_REPLACEMENTS) {
|
|
for(REPLACEMENT, ANDROID_LIB_DEPENDENCY_REPLACEMENTS) {
|
|
REPLACEMENT_FILE = $$section(REPLACEMENT, ":", 0, 0)
|
|
LIB_FILE = $$section(REPLACEMENT, ":", 1, 1)
|
|
FILE_CONTENT += "<lib file=\"$$LIB_FILE\" replaces=\"$$REPLACEMENT_FILE\" />"
|
|
}
|
|
}
|
|
|
|
!isEmpty(ANDROID_BUNDLED_FILES) {
|
|
for (BUNDLED_FILE, ANDROID_BUNDLED_FILES) {
|
|
FILE_CONTENT += "<bundled file=\"$$BUNDLED_FILE\" />"
|
|
}
|
|
}
|
|
|
|
!isEmpty(ANDROID_PERMISSIONS) {
|
|
for (ANDROID_PERMISSION, ANDROID_PERMISSIONS) {
|
|
FILE_CONTENT += "<permission name=\"$$ANDROID_PERMISSION\" />"
|
|
}
|
|
}
|
|
|
|
!isEmpty(ANDROID_FEATURES) {
|
|
for (ANDROID_FEATURE, ANDROID_FEATURES) {
|
|
FILE_CONTENT += "<feature name=\"$$ANDROID_FEATURE\" />"
|
|
}
|
|
}
|
|
|
|
|
|
!isEmpty(FILE_CONTENT) {
|
|
FILE_CONTENT = "<rules><dependencies><lib name=\"$$TARGET\"><depends>" $$FILE_CONTENT "</depends></lib></dependencies></rules>"
|
|
write_file($$DEPENDENCY_FILE, FILE_CONTENT) | error("Aborting.")
|
|
}
|
|
}
|
|
|
|
!isEmpty(ANDROID_JAR_DEPENDENCIES)|!isEmpty(ANDROID_LIB_DEPENDENCIES)|!isEmpty(ANDROID_LIB_DEPENDENCY_REPLACEMENTS)|!isEmpty(ANDROID_BUNDLED_JAR_DEPENDENCIES)|!isEmpty(ANDROID_BUNDLED_FILES) {
|
|
install_dependencies_file.files = $$DEPENDENCY_FILE
|
|
install_dependencies_file.path = $$[QT_INSTALL_LIBS]
|
|
INSTALLS += install_dependencies_file
|
|
}
|