6fdf398ab4
In NDKr18 Google removed GCC, most probably the massacre will not end there and they will remove all GNU tools, so we need to start using LLVM ones. This patch still keeps the compatibility with GNU tools if the Qt was built with android-g++ mkspec. Change-Id: Ibe1979577e08ce63604d55fc5bbd5f64b3737675 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
54 lines
2.2 KiB
Plaintext
54 lines
2.2 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 -mstackrealign
|
|
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_USE_LLVM = true
|
|
|
|
exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so): \
|
|
ANDROID_CXX_STL_LIBS = -lc++
|
|
else: \
|
|
ANDROID_CXX_STL_LIBS = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so.$$replace(ANDROID_PLATFORM, "android-", "")
|
|
|
|
QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz
|
|
|
|
include(../common/android-base-tail.conf)
|