summaryrefslogtreecommitdiff
path: root/share/qbs/modules/cpp/android-gcc.qbs
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@qt.io>2017-05-26 19:22:47 -0700
committerJake Petroules <jake.petroules@qt.io>2017-05-30 14:29:27 +0000
commita66281bec7dca8a0c733ecc4c61bc0415c0a3dfa (patch)
tree2c953a44e227c75429502302a13f88af1bf0be67 /share/qbs/modules/cpp/android-gcc.qbs
parent784d3b062005d0b81ee8b6cd4fdfe680ee4a9a56 (diff)
downloadqbs-a66281bec7dca8a0c733ecc4c61bc0415c0a3dfa.tar.gz
Take Unified Headers into account with the Android NDK
[ChangeLog] Added support for Android NDK Unified Headers Task-number: QBS-1109 Change-Id: If16e4eef826a684c9dd8b4bbd025b159636acbc7 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'share/qbs/modules/cpp/android-gcc.qbs')
-rw-r--r--share/qbs/modules/cpp/android-gcc.qbs27
1 files changed, 22 insertions, 5 deletions
diff --git a/share/qbs/modules/cpp/android-gcc.qbs b/share/qbs/modules/cpp/android-gcc.qbs
index 34ef322b6..59df1cc25 100644
--- a/share/qbs/modules/cpp/android-gcc.qbs
+++ b/share/qbs/modules/cpp/android-gcc.qbs
@@ -89,11 +89,13 @@ LinuxGCC {
toolchainDir, "prebuilt",
Android.ndk.hostArch, "bin")
+ property string toolchainTriple: [targetAbi === "androideabi" ? "arm" : targetArch,
+ targetSystem, targetAbi].join("-")
+
toolchainPrefix: {
if (qbs.toolchain && qbs.toolchain.contains("clang"))
return undefined;
- return [targetAbi === "androideabi" ? "arm" : targetArch,
- targetSystem, targetAbi].join("-") + "-";
+ return toolchainTriple + "-";
}
machineType: {
@@ -138,6 +140,10 @@ LinuxGCC {
}
systemIncludePaths: {
var includes = [];
+ if (Android.ndk.useUnifiedHeaders) {
+ // Might not be needed with Clang in a future NDK release
+ includes.push(FileInfo.joinPaths(sysroot, "usr", "include", toolchainTriple));
+ }
if (Android.ndk.appStl === "system") {
includes.push(FileInfo.joinPaths(cxxStlBaseDir, "system", "include"));
} else if (Android.ndk.appStl.startsWith("gabi++")) {
@@ -154,9 +160,20 @@ LinuxGCC {
}
return includes;
}
- defines: ["ANDROID"]
- sysroot: FileInfo.joinPaths(Android.ndk.ndkDir, "platforms", Android.ndk.platform,
- "arch-" + NdkUtils.abiNameToDirName(Android.ndk.abi))
+ defines: {
+ var list = ["ANDROID"];
+ if (Android.ndk.useUnifiedHeaders) {
+ // Might be superseded by an -mandroid-version or similar Clang compiler flag in future
+ list.push("__ANDROID_API__=" + Android.ndk.platformVersion);
+ }
+ return list;
+ }
+ syslibroot: FileInfo.joinPaths(Android.ndk.ndkDir, "platforms",
+ Android.ndk.platform, "arch-"
+ + NdkUtils.abiNameToDirName(Android.ndk.abi))
+ sysroot: !Android.ndk.useUnifiedHeaders
+ ? syslibroot
+ : FileInfo.joinPaths(Android.ndk.ndkDir, "sysroot")
targetArch: {
switch (qbs.architecture) {