[android] Updated toolchain and added instructions for windows

This commit is contained in:
Alex Zolotarev 2011-06-23 19:03:32 +03:00 committed by Alex Zolotarev
parent 33d868612b
commit 65e35a2816
3 changed files with 37 additions and 19 deletions

View file

@ -0,0 +1,21 @@
Windows:
- Unzip NDK
- Install Cygwin with gnu make and launch it
$ export NDK_ROOT=C:/path/to/android-ndk-r5c
$ export NDK_HOST=windows
$ mkdir omim-android-debug
$ cd omim-android-debug
$ qmake -r ../omim/omim.pro -spec ../omim/tools/mkspecs/android-g++ CONFIG+=debug
$ make
Mac OS X:
- Unzip NDK
- Create android-debug configuration in the QtCreator and set it's properties:
--- Shadow dir omim-android-debug
--- Override qmake parameters: -spec /path/to/omim/tools/mkspecs/android-g++
--- Set Environment variables
NDK_ROOT=C:/path/to/android-ndk-r5c
NDK_HOST=darwin-x86
- Enjoy using QtCreator!

View file

@ -7,29 +7,23 @@ include(g++-unix.conf)
include(linux.conf)
include(qws.conf)
NDK_ROOT = /Developer/android-ndk-r5c
NDK_HOST = darwin-x86
# NDK_ROOT should be defined for qmake
# NDK_HOST should be defined for qmake
NDK_TOOLCHAIN_PREFIX = arm-linux-androideabi
NDK_TOOLCHAIN_VERSION = 4.4.3
ANDROID_PLATFORM = android-7
ANDROID_PLATFORM = android-5
ANDROID_TARGET_ARCH = armeabi
NDK_TOOLCHAIN = $$NDK_TOOLCHAIN_PREFIX-$$NDK_TOOLCHAIN_VERSION
NDK_TOOLCHAIN_PATH=$$NDK_ROOT/toolchains/$$NDK_TOOLCHAIN/prebuilt/$$NDK_HOST
NDK_TOOLCHAIN_PATH=$$(NDK_ROOT)/toolchains/$$NDK_TOOLCHAIN/prebuilt/$$(NDK_HOST)
CONFIG += android-4 $$ANDROID_PLATFORM
ANDROID_PLATFORM_ROOT_PATH = $$NDK_ROOT/platforms/android-4/arch-arm/
CONFIG += $$ANDROID_PLATFORM
ANDROID_PLATFORM_ROOT_PATH = $$(NDK_ROOT)/platforms/$$ANDROID_PLATFORM/arch-arm
ANDROID_PLATFORM_PATH = $$ANDROID_PLATFORM_ROOT_PATH/usr
# used to compile platform plugins for android-4 and android-5
QMAKE_ANDROID_PLATFORM_INCDIR = $$NDK_ROOT/platforms/$$ANDROID_PLATFORM/arch-arm/usr/include
QMAKE_ANDROID_PLATFORM_LIBDIR = $$NDK_ROOT/platforms/$$ANDROID_PLATFORM/arch-arm/usr/lib
ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/gnu-libstdc++/libs/armeabi
ANDROID_SOURCES_CXX_STL_INCDIR = $$NDK_ROOT/sources/cxx-stl/gnu-libstdc++/include $$ANDROID_SOURCES_CXX_STL_LIBDIR/include
ANDROID_SOURCES_CXX_STL_LIBDIR = $$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/libs/armeabi
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
@ -37,9 +31,11 @@ QMAKE_CC = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLCHAIN_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_WARN_ON = -Wall -W
QMAKE_CFLAGS_WARN_OFF =
QMAKE_CFLAGS_RELEASE = -mthumb -O3 -g -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64
QMAKE_CFLAGS_RELEASE = -mthumb -O3 -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64
QMAKE_CFLAGS_DEBUG = -marm -O0 -g -fno-omit-frame-pointer
QMAKE_CFLAGS_SHLIB = -fPIC
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
@ -80,12 +76,13 @@ QMAKE_LIBDIR_OPENGL = $$ANDROID_PLATFORM_PATH/lib
QMAKE_INCDIR_QTOPIA =
QMAKE_LIBDIR_QTOPIA =
LIBGCC_PATH = $$system($$QMAKE_CC -mthumb-interwork -print-libgcc-file-name | xargs dirname)
#LIBGCC_PATH = $$system($$QMAKE_CC -mthumb-interwork -print-libgcc-file-name | xargs dirname)
#LIBSTDCPP_PATH = $$system($$QMAKE_CC -mthumb-interwork -print-file-name=libstdc++.a | xargs dirname)
QMAKE_LINK = $$QMAKE_CXX
QMAKE_LINK_SHLIB = $$QMAKE_CXX
QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH -L$$LIBGCC_PATH -Wl,-rpath-link=$$ANDROID_PLATFORM_PATH/lib
#QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH -L$$LIBGCC_PATH -Wl,-rpath-link=$$ANDROID_PLATFORM_PATH/lib
QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH -Wl,-rpath-link=$$ANDROID_PLATFORM_PATH/lib
QMAKE_LFLAGS_APP =
QMAKE_LFLAGS_SHLIB = -Wl,--no-undefined -Wl,-z,noexecstack -shared
QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB

View file

@ -9,7 +9,7 @@ ROOT_DIR = ..
include($$ROOT_DIR/common.pri)
# Generate version header
VERSION_HEADER = $${IN_PWD}/../version/version.hpp
VERSION_HEADER = ../../omim/version/version.hpp
versiontarget.target = $$VERSION_HEADER
win32 {