forked from organicmaps/organicmaps
[android] Added toolchain support for x86 and armv7. Define NDK_ABI=armeabi/armeabi-v7a/x86 to use it
This commit is contained in:
parent
cb8ce45cae
commit
7d0bea4a25
1 changed files with 35 additions and 19 deletions
|
@ -9,41 +9,57 @@ include(qws.conf)
|
|||
|
||||
# NDK_ROOT should be defined for qmake
|
||||
# NDK_HOST should be defined for qmake
|
||||
# NDK_ABI optionally can be defined to armeabi, armeabi-v7a or x86, by default armeabi will be used
|
||||
|
||||
NDK_TOOLCHAIN_PREFIX = arm-linux-androideabi
|
||||
NDK_TOOLCHAIN_VERSION = 4.4.3
|
||||
contains(NDK_ABI, x86) {
|
||||
NDK_TOOLCHAIN = x86-4.4.3
|
||||
ANDROID_TARGET_ARCH = x86
|
||||
ANDROID_CC_PREFIX = i686-android-linux
|
||||
} else {
|
||||
NDK_TOOLCHAIN = arm-linux-androideabi-4.4.3
|
||||
ANDROID_TARGET_ARCH = arm
|
||||
ANDROID_CC_PREFIX = arm-linux-androideabi
|
||||
}
|
||||
ANDROID_PLATFORM = android-5
|
||||
ANDROID_TARGET_ARCH = armeabi
|
||||
ANDROID_TARGET_ABI = $$(NDK_ABI)
|
||||
|
||||
# by default use armv5 architecture
|
||||
isEmpty( ANDROID_TARGET_ABI ): ANDROID_TARGET_ABI = armeabi
|
||||
|
||||
NDK_TOOLCHAIN = $$NDK_TOOLCHAIN_PREFIX-$$NDK_TOOLCHAIN_VERSION
|
||||
NDK_TOOLCHAIN_PATH=$$(NDK_ROOT)/toolchains/$$NDK_TOOLCHAIN/prebuilt/$$(NDK_HOST)
|
||||
|
||||
CONFIG += $$ANDROID_PLATFORM
|
||||
ANDROID_PLATFORM_ROOT_PATH = $$(NDK_ROOT)/platforms/$$ANDROID_PLATFORM/arch-arm
|
||||
ANDROID_PLATFORM_ROOT_PATH = $$(NDK_ROOT)/platforms/$$ANDROID_PLATFORM/arch-$$ANDROID_TARGET_ARCH
|
||||
ANDROID_PLATFORM_PATH = $$ANDROID_PLATFORM_ROOT_PATH/usr
|
||||
|
||||
ANDROID_SOURCES_CXX_STL_LIBDIR = $$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/libs/armeabi
|
||||
ANDROID_SOURCES_CXX_STL_LIBDIR = $$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/libs/$$ANDROID_TARGET_ABI
|
||||
ANDROID_SOURCES_CXX_STL_INCDIR = $$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/include $$ANDROID_SOURCES_CXX_STL_LIBDIR/include
|
||||
|
||||
# modifications to g++.conf
|
||||
QMAKE_CC = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLCHAIN_PREFIX-gcc
|
||||
QMAKE_CC = $$NDK_TOOLCHAIN_PATH/bin/$$ANDROID_CC_PREFIX-gcc
|
||||
|
||||
contains(ANDROID_TARGET_ARCH, armeabi-v7a): QMAKE_CFLAGS = -Wno-psabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mfpu=neon -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wa,--noexecstack
|
||||
else: QMAKE_CFLAGS = -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wa,--noexecstack
|
||||
|
||||
QMAKE_CFLAGS += --sysroot=$$ANDROID_PLATFORM_ROOT_PATH
|
||||
QMAKE_CFLAGS += --sysroot=$$ANDROID_PLATFORM_ROOT_PATH -ffunction-sections -fdata-sections -fomit-frame-pointer -DANDROID
|
||||
#QMAKE_CFLAGS += -funwind-tables
|
||||
QMAKE_CFLAGS_DEBUG += -fstack-protector -O0 -g
|
||||
QMAKE_CFLAGS_RELEASE += -O3
|
||||
contains(ANDROID_TARGET_ARCH, arm) {
|
||||
QMAKE_CFLAGS += -fpic -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -mthumb -fno-strict-aliasing -finline-limit=64 -Wa,--noexecstack
|
||||
contains(ANDROID_TARGET_ABI, armeabi-v7a): QMAKE_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp
|
||||
else: QMAKE_CFLAGS += -march=armv5te -mtune=xscale -msoft-float
|
||||
} else {
|
||||
# x86 options
|
||||
QMAKE_CFLAGS += -fstrict-aliasing -finline-limit=300 -funswitch-loops
|
||||
}
|
||||
|
||||
QMAKE_CFLAGS_WARN_ON = -Wall -W
|
||||
QMAKE_CFLAGS_WARN_OFF =
|
||||
QMAKE_CFLAGS_RELEASE = -mthumb -O3 -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64
|
||||
QMAKE_CFLAGS_DEBUG = -mthumb -O0 -g -fno-omit-frame-pointer
|
||||
QMAKE_CFLAGS_SHLIB = -fPIC
|
||||
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
|
||||
QMAKE_CFLAGS_THREAD = -D_REENTRANT
|
||||
QMAKE_CFLAGS_HIDESYMS = -fvisibility=hidden
|
||||
|
||||
QMAKE_CXX = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLCHAIN_PREFIX-g++
|
||||
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -DQT_NO_QWS_TRANSFORMED
|
||||
QMAKE_CXX = $$NDK_TOOLCHAIN_PATH/bin/$$ANDROID_CC_PREFIX-g++
|
||||
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
|
||||
QMAKE_CXXFLAGS += -frtti -fexceptions
|
||||
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
|
||||
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
|
||||
|
@ -58,13 +74,13 @@ QMAKE_LINK = $$QMAKE_CXX
|
|||
QMAKE_LINK_SHLIB = $$QMAKE_LINK
|
||||
|
||||
# modifications to linux.conf
|
||||
QMAKE_AR = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLCHAIN_PREFIX-ar cqs
|
||||
QMAKE_OBJCOPY = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLCHAIN_PREFIX-objcopy
|
||||
QMAKE_AR = $$NDK_TOOLCHAIN_PATH/bin/$$ANDROID_CC_PREFIX-ar cqs
|
||||
QMAKE_OBJCOPY = $$NDK_TOOLCHAIN_PATH/bin/$$ANDROID_CC_PREFIX_PREFIX-objcopy
|
||||
|
||||
# don't strip the files!
|
||||
QMAKE_STRIP = # $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLCHAIN_PREFIX-strip
|
||||
QMAKE_STRIP = # $$NDK_TOOLCHAIN_PATH/bin/$$ANDROID_CC_PREFIX-strip
|
||||
|
||||
QMAKE_RANLIB = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLCHAIN_PREFIX-ranlib
|
||||
QMAKE_RANLIB = $$NDK_TOOLCHAIN_PATH/bin/$$ANDROID_CC_PREFIX-ranlib
|
||||
|
||||
QMAKE_INCDIR = $$ANDROID_PLATFORM_PATH/include $$ANDROID_SOURCES_CXX_STL_INCDIR
|
||||
QMAKE_LIBDIR = $$ANDROID_SOURCES_CXX_STL_LIBDIR $$ANDROID_PLATFORM_PATH/lib
|
||||
|
|
Loading…
Add table
Reference in a new issue