summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/android/resolve_config.prf
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/features/android/resolve_config.prf')
-rw-r--r--mkspecs/features/android/resolve_config.prf21
1 files changed, 20 insertions, 1 deletions
diff --git a/mkspecs/features/android/resolve_config.prf b/mkspecs/features/android/resolve_config.prf
index 0cc4e73cc9..5f0c166f84 100644
--- a/mkspecs/features/android/resolve_config.prf
+++ b/mkspecs/features/android/resolve_config.prf
@@ -1,10 +1,29 @@
load(resolve_config)
-!equals(TEMPLATE, aux):!host_build:!single_arch:!java:android {
+!equals(TEMPLATE, aux):!host_build:!single_arch:!java:!single_android_abi:android {
isEmpty(ANDROID_ABIS): ANDROID_ABIS = $$ALL_ANDROID_ABIS
ALL_ABIS = $$join(ANDROID_ABIS, _and_)
CONFIG += $$ALL_ABIS build_all
addExclusiveBuildsProper($$ALL_ABIS, $$ANDROID_ABIS)
unset(ALL_ABIS)
+ CONFIG += multi_android_abi
+}
+
+# single_arch is set qtConfTest_compile and is a marker that a config test is being built, and
+# thus all Android ABI file name modifications should be avoided (prefix / suffix of
+# the built binary).
+# single_android_abi means ANDROID_ABI only has one value
+# multi_android_abi means ANDROID_ABI has more than one value (Qt configured with 2+ arches)
+#
+# Assign $$ALL_ANDROID_ABIS to ANDROID_ABIS only if ANDROID_ABIS was not provided by the user
+# on the qmake command line and Qt was not configured with 2+ arches.
+#
+# Note that in config.tests, ANDROID_ABIS ends up being empty (due to !single_arch check) regardless
+# of how many ABIs Qt is configured with, which in turns causes the 'architectures' field in
+# in android-arch-deployment-settings.json be empty.
+!equals(TEMPLATE, aux):!host_build:!single_arch:!java:!multi_android_abi:android:isEmpty(ANDROID_ABIS) {
+ # Needed for the generated deployment-settings.json not to have an empty list
+ # of architectures.
+ ANDROID_ABIS = $$ALL_ANDROID_ABIS
}