Revision control

++ APK_PATH = $$shell_path($$OUT_PWD/android-build/$${TARGET}.apk)
++ TARGET_FOR_ANDROID_DEPLOYMENT_SETTINGS = $$TARGET
++
++ !contains(TEMPLATE, subdirs): {
++ apk_install_target.target = apk_install_target
++ apk_install_target.depends = first
++ apk_install_target.commands = $(MAKE) -f $(MAKEFILE) INSTALL_ROOT=$$shell_path($$OUT_PWD/android-build) install
++
++ qtPrepareTool(ANDROIDDEPLOYQT, androiddeployqt)
++ isEmpty(ANDROID_DEPLOYMENT_SETTINGS_FILE): ANDROID_DEPLOYMENT_SETTINGS_FILE = $$OUT_PWD/android-$$TARGET-deployment-settings.json
++ contains(QMAKE_HOST.os, Windows): extension = .exe
++
++ apk.target = apk
++ apk.depends = apk_install_target
++ apk.commands = $$ANDROIDDEPLOYQT --input $$ANDROID_DEPLOYMENT_SETTINGS_FILE --output $$OUT_PWD/android-build --apk $$APK_PATH
++
++ aab.target = aab
++ aab.depends = apk_install_target
++ aab.commands = $$ANDROIDDEPLOYQT --input $$ANDROID_DEPLOYMENT_SETTINGS_FILE --output $$OUT_PWD/android-build --aab --apk $$APK_PATH
++ } else {
++ prepareRecursiveTarget(aab)
++ prepareRecursiveTarget(apk)
++ prepareRecursiveTarget(apk_install_target)
++ }
++
++ # Apply Android arch specific settings in the following cases:
++ # - build_pass == true aka Qt was configured with multi-ABI (2+ arches)
++ # - single_android_abi == true aka Qt was configuring with a single ABI / arch
++ # modifications are omitted when building config.tests
++ # during Qt configuration, by checkking for the presence of single_arch
++ build_pass|if(single_android_abi:!single_arch) {
++ contains(TEMPLATE, ".*app") {
++ !android_app {
++ !contains(TARGET, ".so") {
++ single_arch:TARGET = lib$${TARGET}.so
++ else:TARGET = lib$${TARGET}_$${QT_ARCH}.so
++ }
++ QMAKE_LFLAGS += -Wl,-soname,$$shell_quote($$TARGET)
++ contains(ANDROID_TARGET_ARCH, "arm64-v8a|x86_64") {
++ qtConfig(android_16kb_pages) {
++ QMAKE_LFLAGS += -Wl,-z,max-page-size=16384
++ }
++ }
++ android_install {
++ target.path=/libs/$$ANDROID_TARGET_ARCH/
++ INSTALLS *= target
++ }
++ }
++ } else: contains(TEMPLATE, "lib"):!QTDIR_build:android_install {
++ tmpvar = $$str_member($$TARGET, -$$str_size($${QT_ARCH}), -1)
++ !equals(tmpvar, $${QT_ARCH}): TARGET = $${TARGET}_$${QT_ARCH}
++ !static {
++ target.path = /libs/$$ANDROID_TARGET_ARCH/
++ INSTALLS *= target
++ }
++ }
++ } else {
++ android-build-distclean.commands = \
++ $$QMAKE_DEL_TREE $$shell_quote($$shell_path($$OUT_PWD/android-build))
++ QMAKE_EXTRA_TARGETS *= android-build-distclean
++ CLEAN_DEPS += android-build-distclean
++ }
++ QMAKE_EXTRA_TARGETS *= aab apk apk_install_target