summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/android/android.prf
blob: 7f7fec85f7635ad066bac90de15c70f35a276813 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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)

            android_install {
                target.path=/libs/$$ANDROID_TARGET_ARCH/
                INSTALLS *= target
            }
        }
    } else: contains(TEMPLATE, "lib"):!static:!QTDIR_build:android_install {
        tmpvar = $$str_member($$TARGET, -$$str_size($${QT_ARCH}), -1)
        !equals(tmpvar, $${QT_ARCH}): TARGET = $${TARGET}_$${QT_ARCH}
        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