forked from organicmaps/organicmaps
[android] Added jni support to YoPme
This commit is contained in:
parent
ccaa2ad56f
commit
d6fca19b71
5 changed files with 182 additions and 11 deletions
1
android/YoPme/.gitignore
vendored
Normal file
1
android/YoPme/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
libs
|
142
android/YoPme/jni/Android.mk
Normal file
142
android/YoPme/jni/Android.mk
Normal file
|
@ -0,0 +1,142 @@
|
|||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
OMIM_CONFIG := release
|
||||
ifeq ($(NDK_DEBUG),1)
|
||||
OMIM_CONFIG := debug
|
||||
else
|
||||
ifeq ($(PRODUCTION),1)
|
||||
OMIM_CONFIG := production
|
||||
LOCAL_CFLAGS += -fvisibility=hidden
|
||||
LOCAL_CPPFLAGS += -fvisibility-inlines-hidden
|
||||
endif
|
||||
LOCAL_CFLAGS += -O3
|
||||
endif
|
||||
|
||||
$(info "***** Building $(OMIM_CONFIG) configuration for $(TARGET_ARCH_ABI) *****")
|
||||
|
||||
# Build static libraries
|
||||
|
||||
BUILD_RESULT := $(shell (bash $(LOCAL_PATH)/../../../tools/autobuild/android.sh $(OMIM_CONFIG) $(TARGET_ARCH_ABI) $(APP_PLATFORM)))
|
||||
|
||||
####################################################################################
|
||||
# List all static libraries which are built using our own scripts in tools/android #
|
||||
####################################################################################
|
||||
|
||||
MY_PREBUILT_LIBS_PATH := ../../../../omim-android-$(OMIM_CONFIG)-$(TARGET_ARCH_ABI)/out/$(OMIM_CONFIG)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := protobuf
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libprotobuf.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := tomcrypt
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libtomcrypt.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := jansson
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libjansson.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := bzip2
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libbzip2.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := zlib
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libzlib.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := fribidi
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libfribidi.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := freetype
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libfreetype.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := expat
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libexpat.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := base
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libbase.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := coding
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libcoding.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := geometry
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libgeometry.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := anim
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libanim.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := platform
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libplatform.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := graphics
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libgraphics.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := indexer
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libindexer.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := storage
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libstorage.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := search
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libsearch.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := gui
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libgui.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := map
|
||||
LOCAL_SRC_FILES := $(MY_PREBUILT_LIBS_PATH)/libmap.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
########################### Main YoPMe module ############################
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := yopme
|
||||
LOCAL_STATIC_LIBRARIES := map gui search storage indexer graphics platform anim geometry coding base expat freetype fribidi zlib bzip2 jansson tomcrypt protobuf
|
||||
LOCAL_CFLAGS := -ffunction-sections -fdata-sections -Wno-psabi
|
||||
|
||||
TARGET_PLATFORM := android-15
|
||||
|
||||
# Add your headers below
|
||||
LOCAL_HEADER_FILES :=
|
||||
|
||||
# Add your sources below
|
||||
LOCAL_SRC_FILES :=
|
||||
|
||||
LOCAL_LDLIBS := -llog -lGLESv2
|
||||
|
||||
LOCAL_LDLIBS += -Wl,--gc-sections
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
22
android/YoPme/jni/Application.mk
Normal file
22
android/YoPme/jni/Application.mk
Normal file
|
@ -0,0 +1,22 @@
|
|||
NDK_TOOLCHAIN_VERSION := 4.6
|
||||
APP_PLATFORM := android-15
|
||||
|
||||
APP_ABI := armeabi-v7a
|
||||
|
||||
APP_STL := gnustl_static
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
APP_CFLAGS += -I$(LOCAL_PATH)/../../../3party/boost
|
||||
|
||||
APP_GNUSTL_FORCE_CPP_FEATURES := exceptions rtti
|
||||
|
||||
ifeq ($(NDK_DEBUG),1)
|
||||
APP_OPTIM := debug
|
||||
APP_CFLAGS += -DDEBUG -D_DEBUG
|
||||
APP_ABI := armeabi-v7a x86
|
||||
else
|
||||
APP_OPTIM := release
|
||||
APP_CFLAGS += -DRELEASE -D_RELEASE
|
||||
ifeq ($(PRODUCTION),1)
|
||||
APP_CFLAGS += -DOMIM_PRODUCTION
|
||||
endif
|
||||
endif
|
|
@ -6,7 +6,7 @@ set -e -u -x
|
|||
LOCAL_DIRNAME="${PWD}/$(dirname "$0")"
|
||||
|
||||
if [[ $# < 1 ]]; then
|
||||
echo "Usage: $0 <debug|release|production> [clean]"
|
||||
echo "Usage: $0 <debug|release|production> [armeabi|armeabi-v7a|mips|x86] [android-PLATFORM_NUMBER]"
|
||||
exit 1
|
||||
fi
|
||||
CONFIGURATION="$1"
|
||||
|
@ -21,16 +21,19 @@ SHADOW_DIR_BASE="$LOCAL_DIRNAME/../../../omim-android"
|
|||
# Try to read ndk root path from android/local.properties file
|
||||
export NDK_ROOT=$(GetNdkRoot) || ( echo "Can't read NDK root path from android/local.properties"; exit 1 )
|
||||
export NDK_HOST=$(GetNdkHost) || ( echo "Can't get your OS type, please check tools/autobuild/ndk_helper.sh script"; exit 1 )
|
||||
if [[ $# > 2 ]] ; then
|
||||
export NDK_PLATFORM=$3
|
||||
fi
|
||||
|
||||
if [[ $# > 1 ]] ; then
|
||||
NDK_ABI_LIST=$2
|
||||
else
|
||||
NDK_ABI_LIST=(armeabi armeabi-v7a mips x86)
|
||||
fi
|
||||
|
||||
NDK_ABI_LIST=(armeabi armeabi-v7a mips x86)
|
||||
|
||||
for abi in "${NDK_ABI_LIST[@]}"; do
|
||||
SHADOW_DIR="${SHADOW_DIR_BASE}-${CONFIGURATION}-${abi}"
|
||||
if [[ $# > 1 && "$2" == "clean" ]] ; then
|
||||
echo "Cleaning $CONFIGURATION-$abi configuration..."
|
||||
rm -rf "$SHADOW_DIR"
|
||||
else
|
||||
export NDK_ABI="$abi"
|
||||
BuildQt "$SHADOW_DIR" "$MKSPEC" "$QMAKE_PARAMS" || ( echo "ERROR while building $abi config"; exit 1 )
|
||||
fi
|
||||
export NDK_ABI="$abi"
|
||||
BuildQt "$SHADOW_DIR" "$MKSPEC" "$QMAKE_PARAMS" 1>&2 || ( echo "ERROR while building $abi config"; exit 1 )
|
||||
done
|
||||
|
|
|
@ -11,11 +11,14 @@ include(qws.conf)
|
|||
# NDK_HOST should be defined for qmake
|
||||
# NDK_ABI optionally can be defined to armeabi, armeabi-v7a, mips or x86, by default armeabi will be used
|
||||
|
||||
ANDROID_TARGET_ABI=$$(NDK_ABI)
|
||||
ANDROID_TARGET_ABI = $$(NDK_ABI)
|
||||
# by default use armv5 architecture
|
||||
isEmpty( ANDROID_TARGET_ABI ): ANDROID_TARGET_ABI = armeabi
|
||||
|
||||
ANDROID_PLATFORM = android-5
|
||||
ANDROID_PLATFORM = $$(NDK_PLATFORM)
|
||||
# by default use android-5 platform
|
||||
isEmpty( ANDROID_PLATFORM ): ANDROID_PLATFORM = android-5
|
||||
|
||||
TOOLCHAIN_VERSION = 4.6
|
||||
|
||||
contains(ANDROID_TARGET_ABI, x86) {
|
||||
|
|
Loading…
Add table
Reference in a new issue