diff options
Diffstat (limited to 'configure.pri')
-rw-r--r-- | configure.pri | 56 |
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 |