summaryrefslogtreecommitdiffstats
path: root/mkspecs/android-clang/qmake.conf
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kdab.com>2017-07-28 16:52:31 +0300
committerSérgio Martins <sergio.martins@kdab.com>2017-08-23 12:47:58 +0000
commit09ea013ae17caad7d973fb05287a634dba2768c9 (patch)
tree4be46f69a069c1da87b1f998f828dcf2581312e0 /mkspecs/android-clang/qmake.conf
parent2740584e6de5ec2999e0e44f363bc18b9252dc23 (diff)
Use libc++ instead of libstdc++ when compiling with android-clang mkspec
clang+libc++ is the only supported way by Google nowadays. libstdc++ is too old and already fails to build some C++11 apps e.g. missing std::to_string(). android-g++ mkspec still uses libstdc++ and g++. Use -isystem to include system headers instead of QMAKE_INCDIR_POST (-I). Task-number: QTBUG-60455 Change-Id: Iba8b04594c2e5e2832e6cf480e4e52ff31ad4106 Reviewed-by: Sérgio Martins <sergio.martins@kdab.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'mkspecs/android-clang/qmake.conf')
-rw-r--r--mkspecs/android-clang/qmake.conf28
1 files changed, 21 insertions, 7 deletions
diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf
index 3e621c7d77..2f38e100b2 100644
--- a/mkspecs/android-clang/qmake.conf
+++ b/mkspecs/android-clang/qmake.conf
@@ -15,20 +15,34 @@ QMAKE_CC = $$NDK_LLVM_PATH/bin/clang
QMAKE_CXX = $$NDK_LLVM_PATH/bin/clang++
equals(ANDROID_TARGET_ARCH, armeabi-v7a): \
- QMAKE_CFLAGS = -target armv7-none-linux-androideabi
+ QMAKE_CFLAGS += -target armv7-none-linux-androideabi
else: equals(ANDROID_TARGET_ARCH, armeabi): \
- QMAKE_CFLAGS = -target armv5te-none-linux-androideabi
+ QMAKE_CFLAGS += -target armv5te-none-linux-androideabi
else: equals(ANDROID_TARGET_ARCH, arm64-v8a): \
- QMAKE_CFLAGS = -target aarch64-none-linux-android
+ QMAKE_CFLAGS += -target aarch64-none-linux-android
else: equals(ANDROID_TARGET_ARCH, x86): \
- QMAKE_CFLAGS = -target i686-none-linux-android
+ QMAKE_CFLAGS += -target i686-none-linux-android
else: equals(ANDROID_TARGET_ARCH, x86_64): \
- QMAKE_CFLAGS = -target x86_64-none-linux-android
+ QMAKE_CFLAGS += -target x86_64-none-linux-android
else: equals(ANDROID_TARGET_ARCH, mips): \
QMAKE_CFLAGS += -target mipsel-none-linux-android
else: equals(ANDROID_TARGET_ARCH, mips64): \
- QMAKE_CFLAGS = -target mips64el-none-linux-android
+ QMAKE_CFLAGS += -target mips64el-none-linux-android
-QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -gcc-toolchain $$NDK_TOOLCHAIN_PATH
+QMAKE_CFLAGS += -gcc-toolchain $$NDK_TOOLCHAIN_PATH
+QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a
+QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$NDK_ROOT/sysroot \
+ -isystem $$NDK_ROOT/sysroot/usr/include/$$NDK_TOOLS_PREFIX \
+ -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++/include \
+ -isystem $$NDK_ROOT/sources/android/support/include \
+ -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include
+
+ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/llvm-libc++/libs/$$ANDROID_TARGET_ARCH
+
+ANDROID_STDCPP_PATH = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++_shared.so
+ANDROID_CXX_STL_LIBS = -lc++
+
+QMAKE_ARM_CFLAGS_RELEASE = -Oz
+QMAKE_ARM_CFLAGS_RELEASE_WITH_DEBUGINFO = -g -Oz
include(../common/android-base-tail.conf)