From 65e35a28169ea05b9de9a489d4dc5d97629f1bd2 Mon Sep 17 00:00:00 2001 From: Alex Zolotarev Date: Thu, 23 Jun 2011 19:03:32 +0300 Subject: [PATCH] [android] Updated toolchain and added instructions for windows --- docs/android_toolchain.txt | 21 ++++++++++++++++++ tools/mkspecs/android-g++/qmake.conf | 33 +++++++++++++--------------- version/version.pro | 2 +- 3 files changed, 37 insertions(+), 19 deletions(-) create mode 100644 docs/android_toolchain.txt diff --git a/docs/android_toolchain.txt b/docs/android_toolchain.txt new file mode 100644 index 0000000000..b1d59a9e04 --- /dev/null +++ b/docs/android_toolchain.txt @@ -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! \ No newline at end of file diff --git a/tools/mkspecs/android-g++/qmake.conf b/tools/mkspecs/android-g++/qmake.conf index 62b718e6cf..2f97684ce1 100644 --- a/tools/mkspecs/android-g++/qmake.conf +++ b/tools/mkspecs/android-g++/qmake.conf @@ -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 diff --git a/version/version.pro b/version/version.pro index be704604e5..1bfe9461a3 100644 --- a/version/version.pro +++ b/version/version.pro @@ -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 {