summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mkspecs/android-g++/qmake.conf2
-rw-r--r--mkspecs/features/android_deployment_settings.prf70
2 files changed, 71 insertions, 1 deletions
diff --git a/mkspecs/android-g++/qmake.conf b/mkspecs/android-g++/qmake.conf
index 4ff5341837..0df2509257 100644
--- a/mkspecs/android-g++/qmake.conf
+++ b/mkspecs/android-g++/qmake.conf
@@ -3,7 +3,7 @@ MAKEFILE_GENERATOR = UNIX
QMAKE_PLATFORM = android
QMAKE_COMPILER = gcc
-CONFIG += android_install unversioned_soname
+CONFIG += android_install unversioned_soname android_deployment_settings
DEFINES += QT_NO_PRINTER QT_NO_PRINTDIALOG
include(../common/linux.conf)
diff --git a/mkspecs/features/android_deployment_settings.prf b/mkspecs/features/android_deployment_settings.prf
new file mode 100644
index 0000000000..2f64d47f04
--- /dev/null
+++ b/mkspecs/features/android_deployment_settings.prf
@@ -0,0 +1,70 @@
+contains(TEMPLATE, ".*app"):!build_pass:!android-no-sdk {
+ FILE_CONTENT = "{"
+ FILE_CONTENT += " \"description\": \"This file is generated by qmake to be read by androiddeployqt and should not be modified by hand.\","
+
+ FILE_CONTENT += " \"qt\": \"$$[QT_INSTALL_PREFIX]\","
+
+ # Settings from mkspecs/environment
+ isEmpty(SDK_ROOT): SDK_ROOT = $$(ANDROID_SDK_ROOT)
+ isEmpty(SDK_ROOT): SDK_ROOT = $$DEFAULT_ANDROID_SDK_ROOT
+ FILE_CONTENT += " \"sdk\": \"$$SDK_ROOT\","
+
+ isEmpty(NDK_ROOT): NDK_ROOT = $$(ANDROID_NDK_ROOT)
+ isEmpty(NDK_ROOT): NDK_ROOT = $$DEFAULT_ANDROID_NDK_ROOT
+ FILE_CONTENT += " \"ndk\": \"$$NDK_ROOT\","
+
+ NDK_TOOLCHAIN_PREFIX = $$(ANDROID_NDK_TOOLCHAIN_PREFIX)
+ isEmpty(NDK_TOOLCHAIN_PREFIX) {
+ equals(ANDROID_TARGET_ARCH, x86): NDK_TOOLCHAIN_PREFIX = x86
+ else: equals(ANDROID_TARGET_ARCH, mips): NDK_TOOLCHAIN_PREFIX = mipsel-linux-android
+ else: NDK_TOOLCHAIN_PREFIX = arm-linux-androideabi
+ }
+ FILE_CONTENT += " \"toolchain-prefix\": \"$$NDK_TOOLCHAIN_PREFIX\","
+
+ NDK_TOOLCHAIN_VERSION = $$(ANDROID_NDK_TOOLCHAIN_VERSION)
+ isEmpty(NDK_TOOLCHAIN_VERSION): NDK_TOOLCHAIN_VERSION = $$DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION
+ FILE_CONTENT += " \"toolchain-version\": \"$$NDK_TOOLCHAIN_VERSION\","
+
+ NDK_HOST = $$(ANDROID_NDK_HOST)
+ isEmpty(NDK_HOST): NDK_HOST = $$DEFAULT_ANDROID_NDK_HOST
+ FILE_CONTENT += " \"ndk-host\": \"$$NDK_HOST\","
+
+ ANDROID_TARGET_ARCH = $$(ANDROID_TARGET_ARCH)
+ isEmpty(ANDROID_TARGET_ARCH): ANDROID_TARGET_ARCH = $$DEFAULT_ANDROID_TARGET_ARCH
+ FILE_CONTENT += " \"target-architecture\": \"$$ANDROID_TARGET_ARCH\","
+
+ # Explicitly set dependencies of application for deployment
+ !isEmpty(ANDROID_DEPLOYMENT_DEPENDENCIES): \
+ FILE_CONTENT += " \"deployment-dependencies\": \""$$join(ANDROID_DEPLOYMENT_DEPENDENCIES, ",")"\","
+
+ # Android-specific settings of Project
+ !isEmpty(ANDROID_PACKAGE_SOURCE_DIR): \
+ FILE_CONTENT += " \"android-package-source-directory\": \"$$ANDROID_PACKAGE_SOURCE_DIR\","
+
+ !isEmpty(ANDROID_PACKAGE): \
+ FILE_CONTENT += " \"android-package\": \"$$ANDROID_PACKAGE\","
+
+ !isEmpty(ANDROID_MINIMUM_VERSION): \
+ FILE_CONTENT += " \"android-minimum-version\": \"$$ANDROID_MINIMUM_VERSION\","
+
+ !isEmpty(ANDROID_TARGET_VERSION): \
+ FILE_CONTENT += " \"android-target-version\": \"$$ANDROID_TARGET_VERSION\","
+
+ !isEmpty(ANDROID_APP_NAME): \
+ FILE_CONTENT += " \"android-app-name\": \"$$ANDROID_APP_NAME\","
+
+ !isEmpty(ANDROID_EXTRA_LIBS): \
+ FILE_CONTENT += " \"android-extra-libs\": \""$$join(ANDROID_EXTRA_LIBS, ",")"\","
+
+ !isEmpty(QMAKE_SUPPORTED_ORIENTATIONS): \
+ FILE_CONTENT += " \"supported-orientations\": \""$$join(QMAKE_SUPPORTED_ORIENTATIONS, ",")"\","
+
+
+ FILE_CONTENT += " \"application-binary\": \"$$absolute_path($$DESTDIR, $$OUT_PWD)/$$TARGET\""
+ FILE_CONTENT += "}"
+
+ isEmpty(ANDROID_DEPLOYMENT_SETTINGS_FILE): ANDROID_DEPLOYMENT_SETTINGS_FILE = $$OUT_PWD/android-$$TARGET-deployment-settings.json
+
+ write_file($$ANDROID_DEPLOYMENT_SETTINGS_FILE, FILE_CONTENT) | error("Aborting.")
+}
+