09ea013ae1
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>
49 lines
2.1 KiB
Plaintext
49 lines
2.1 KiB
Plaintext
# qmake configuration for building with android-clang
|
|
MAKEFILE_GENERATOR = UNIX
|
|
QMAKE_PLATFORM = android
|
|
QMAKE_COMPILER = gcc clang llvm
|
|
|
|
CONFIG += android_install unversioned_soname unversioned_libname plugin_with_soname android_deployment_settings
|
|
|
|
include(../common/linux.conf)
|
|
include(../common/gcc-base-unix.conf)
|
|
include(../common/clang.conf)
|
|
include(../common/android-base-head.conf)
|
|
|
|
NDK_LLVM_PATH = $$NDK_ROOT/toolchains/llvm/prebuilt/$$NDK_HOST
|
|
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
|
|
else: equals(ANDROID_TARGET_ARCH, armeabi): \
|
|
QMAKE_CFLAGS += -target armv5te-none-linux-androideabi
|
|
else: equals(ANDROID_TARGET_ARCH, arm64-v8a): \
|
|
QMAKE_CFLAGS += -target aarch64-none-linux-android
|
|
else: equals(ANDROID_TARGET_ARCH, x86): \
|
|
QMAKE_CFLAGS += -target i686-none-linux-android
|
|
else: equals(ANDROID_TARGET_ARCH, x86_64): \
|
|
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 += -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)
|