summaryrefslogtreecommitdiffstats
path: root/configure.pri
diff options
context:
space:
mode:
Diffstat (limited to 'configure.pri')
-rw-r--r--configure.pri56
1 files changed, 47 insertions, 9 deletions
diff --git a/configure.pri b/configure.pri
index 30e31ddbcd..c422c73650 100644
--- a/configure.pri
+++ b/configure.pri
@@ -258,15 +258,18 @@ defineTest(qtConfTest_architecture) {
arch_magic = ".*==Qt=magic=Qt== Architecture:([^\\0]*).*"
subarch_magic = ".*==Qt=magic=Qt== Sub-architecture:([^\\0]*).*"
+ buildabi_magic = ".*==Qt=magic=Qt== Build-ABI:([^\\0]*).*"
- !contains(content, $$arch_magic)|!contains(content, $$subarch_magic): \
+ !contains(content, $$arch_magic)|!contains(content, $$subarch_magic)|!contains(content, $$buildabi_magic): \
error("$$eval($${1}.label) detection binary does not contain expected data.")
$${1}.arch = $$replace(content, $$arch_magic, "\\1")
$${1}.subarch = $$replace(content, $$subarch_magic, "\\1")
$${1}.subarch = $$split($${1}.subarch, " ")
+ $${1}.buildabi = $$replace(content, $$buildabi_magic, "\\1")
export($${1}.arch)
export($${1}.subarch)
+ export($${1}.buildabi)
qtLog("Detected architecture: $$eval($${1}.arch) ($$eval($${1}.subarch))")
$${1}.cache += arch subarch
@@ -466,9 +469,46 @@ defineTest(qtConfOutput_prepareOptions) {
"QMAKE_MAC_SDK = $$val_escape(config.input.sdk)"
}
android {
+ sdk_root = $$eval(config.input.android-sdk)
+ isEmpty(sdk_root): \
+ sdk_root = $$getenv(ANDROID_SDK_ROOT)
+ isEmpty(sdk_root) {
+ for(ever) {
+ equals(QMAKE_HOST.os, Linux): \
+ sdk_root = $$(HOME)/Android/Sdk
+ else: equals(QMAKE_HOST.os, Darwin): \
+ sdk_root = $$(HOME)/Library/Android/sdk
+ else: \
+ break()
+ !exists($$sdk_root): \
+ sdk_root =
+ break()
+ }
+ }
+ isEmpty(sdk_root): \
+ qtConfFatalError("Cannot find Android SDK." \
+ "Please use -android-sdk option to specify one.")
+
ndk_root = $$eval(config.input.android-ndk)
isEmpty(ndk_root): \
ndk_root = $$getenv(ANDROID_NDK_ROOT)
+ isEmpty(ndk_root) {
+ for(ever) {
+ exists($$sdk_root/ndk-bundle) {
+ ndk_root = $$sdk_root/ndk-bundle
+ break()
+ }
+ equals(QMAKE_HOST.os, Linux): \
+ ndk_root = $$(HOME)/Android/Sdk/ndk-bundle
+ else: equals(QMAKE_HOST.os, Darwin): \
+ ndk_root = $$(HOME)/Library/Android/sdk/ndk-bundle
+ else: \
+ break()
+ !exists($$ndk_root): \
+ ndk_root =
+ break()
+ }
+ }
isEmpty(ndk_root): \
qtConfFatalError("Cannot find Android NDK." \
"Please use -android-ndk option to specify one.")
@@ -518,13 +558,6 @@ defineTest(qtConfOutput_prepareOptions) {
qtConfFatalError("Specified Android NDK host is invalid.")
}
- sdk_root = $$eval(config.input.android-sdk)
- isEmpty(sdk_root): \
- sdk_root = $$getenv(ANDROID_SDK_ROOT)
- isEmpty(sdk_root): \
- qtConfFatalError("Cannot find Android SDK." \
- "Please use -android-sdk option to specify one.")
-
target_arch = $$eval(config.input.android-arch)
isEmpty(target_arch): \
target_arch = armeabi-v7a
@@ -839,9 +872,11 @@ defineTest(qtConfOutput_shared) {
defineTest(qtConfOutput_architecture) {
arch = $$qtConfEvaluate("tests.architecture.arch")
+ buildabi = $$qtConfEvaluate("tests.architecture.buildabi")
$$qtConfEvaluate("features.cross_compile") {
host_arch = $$qtConfEvaluate("tests.host_architecture.arch")
+ host_buildabi = $$qtConfEvaluate("tests.host_architecture.buildabi")
privatePro = \
"host_build {" \
@@ -853,15 +888,18 @@ defineTest(qtConfOutput_architecture) {
"host_build {" \
" QT_ARCH = $$host_arch" \
" QT_TARGET_ARCH = $$arch" \
+ " QT_TARGET_BUILDABI = $$buildabi" \
"} else {" \
" QT_ARCH = $$arch" \
+ " QT_BUILDABI = $$host_buildabi" \
"}"
} else {
privatePro = \
"QT_CPU_FEATURES.$$arch = $$qtConfEvaluate('tests.architecture.subarch')"
publicPro = \
- "QT_ARCH = $$arch"
+ "QT_ARCH = $$arch" \
+ "QT_BUILDABI = $$buildabi"
}
$${currentConfig}.output.publicPro += $$publicPro