aboutsummaryrefslogtreecommitdiffhomepage
path: root/build-android
diff options
context:
space:
mode:
authorGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2014-12-07 01:23:42 -0800
committerGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2014-12-07 01:23:42 -0800
commitf6d2ddffc031d8ff6f912f6c2fcad2b4582816a3 (patch)
tree39494f28aa818116940502de664ff9bc19d64dd5 /build-android
parent3cd4e92c412e1f8b68db5d7224562648f931b874 (diff)
Shared library for Android
Diffstat (limited to 'build-android')
-rw-r--r--build-android/.gitignore1
-rwxr-xr-xbuild-android/build.sh13
-rw-r--r--build-android/jni/Android.mk66
3 files changed, 72 insertions, 8 deletions
diff --git a/build-android/.gitignore b/build-android/.gitignore
index 725c6cf4..9f17b19c 100644
--- a/build-android/.gitignore
+++ b/build-android/.gitignore
@@ -1,3 +1,4 @@
third-party
include
mailcore2-android-*.zip
+cmake-build
diff --git a/build-android/build.sh b/build-android/build.sh
index 8851314f..c2e14c32 100755
--- a/build-android/build.sh
+++ b/build-android/build.sh
@@ -37,6 +37,7 @@ function build {
cd "$current_dir/jni"
$ANDROID_NDK/ndk-build TARGET_PLATFORM=$ANDROID_PLATFORM TARGET_ARCH_ABI=$TARGET_ARCH_ABI \
+ NDK_TOOLCHAIN_VERSION=4.9 \
CTEMPLATE_PATH=$current_dir/third-party/ctemplate-android-1 \
ICU4C_PATH=$current_dir/third-party/icu4c-android-1 \
LIBETPAN_PATH=$current_dir/third-party/libetpan-android-1 \
@@ -46,10 +47,20 @@ function build {
OPENSSL_PATH=$current_dir/third-party/openssl-android-1
mkdir -p "$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
- cp "$current_dir/obj/local/$TARGET_ARCH_ABI/libMailCore.a" "$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
+ cp "$current_dir/libs/$TARGET_ARCH_ABI/libMailCore.so" "$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
rm -rf "$current_dir/obj"
+ rm -rf "$current_dir/libs"
}
+mkdir -p "$current_dir/cmake-build"
+cd "$current_dir/cmake-build"
+cmake ../..
+
+mkdir -p "$current_dir/include"
+cp -R "$current_dir/cmake-build/src/include/MailCore" "$current_dir/include"
+mkdir -p "$current_dir/$package_name-$build_version/include"
+cp -R "$current_dir/cmake-build/src/include/MailCore" "$current_dir/$package_name-$build_version/include"
+
mkdir -p "$current_dir/third-party"
cd "$current_dir/third-party"
download_dep "ctemplate-android" $ctemplate_build_version
diff --git a/build-android/jni/Android.mk b/build-android/jni/Android.mk
index dee660ec..7f3b4aa0 100644
--- a/build-android/jni/Android.mk
+++ b/build-android/jni/Android.mk
@@ -1,9 +1,5 @@
CURRENT_DIR := $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := MailCore
-
src_dir := $(CURRENT_DIR)/../../src
subdirs = \
core \
@@ -19,7 +15,7 @@ subdirs = \
core/smtp \
core/zip \
core/zip/MiniZip
-LOCAL_C_INCLUDES := \
+includes = \
$(CURRENT_DIR)/../include \
$(CTEMPLATE_PATH)/include \
$(ICU4C_PATH)/include \
@@ -54,11 +50,67 @@ async_nntp_src_files := $(wildcard $(src_dir)/async/nntp/*.cpp)
async_pop_src_files := $(wildcard $(src_dir)/async/pop/*.cpp)
async_smtp_src_files := $(wildcard $(src_dir)/async/smtp/*.cpp)
+# include $(CLEAR_VARS)
+# LOCAL_MODULE := MailCore
+# LOCAL_C_INCLUDES := $(includes)
+# LOCAL_SRC_FILES := $(core_src_files) $(abstract_src_files) $(imap_src_files) $(nntp_src_files) \
+# $(pop_src_files) $(provider_src_files) $(renderer_src_files) $(rfc822_src_files) \
+# $(security_src_files) $(smtp_src_files) $(zip_src_files) $(minizip_src_files) \
+# $(async_imap_src_files) $(async_nntp_src_files) $(async_pop_src_files) $(async_smtp_src_files)
+# LOCAL_CPPFLAGS := -frtti
+# LOCAL_CFLAGS := -DNOCRYPT
+# include $(BUILD_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := etpan
+LOCAL_SRC_FILES := $(LIBETPAN_PATH)/libs/$(TARGET_ARCH_ABI)/libetpan.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := crypto
+LOCAL_SRC_FILES := $(OPENSSL_PATH)/libs/$(TARGET_ARCH_ABI)/libcrypto.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := ssl
+LOCAL_SRC_FILES := $(OPENSSL_PATH)/libs/$(TARGET_ARCH_ABI)/libssl.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := icu4c
+LOCAL_SRC_FILES := $(ICU4C_PATH)/libs/$(TARGET_ARCH_ABI)/libicu4c.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := xml2
+LOCAL_SRC_FILES := $(LIBXML2_PATH)/libs/$(TARGET_ARCH_ABI)/libxml2.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := uchardet
+LOCAL_SRC_FILES := $(UCHARDET_PATH)/libs/$(TARGET_ARCH_ABI)/libuchardet.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := tidy
+LOCAL_SRC_FILES := $(TIDY_HTML5_PATH)/libs/$(TARGET_ARCH_ABI)/libtidy.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := ctemplate
+LOCAL_SRC_FILES := $(CTEMPLATE_PATH)/libs/$(TARGET_ARCH_ABI)/libctemplate.a
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := MailCore
+LOCAL_C_INCLUDES := $(includes)
LOCAL_SRC_FILES := $(core_src_files) $(abstract_src_files) $(imap_src_files) $(nntp_src_files) \
$(pop_src_files) $(provider_src_files) $(renderer_src_files) $(rfc822_src_files) \
$(security_src_files) $(smtp_src_files) $(zip_src_files) $(minizip_src_files) \
$(async_imap_src_files) $(async_nntp_src_files) $(async_pop_src_files) $(async_smtp_src_files)
LOCAL_CPPFLAGS := -frtti
LOCAL_CFLAGS := -DNOCRYPT
-
-include $(BUILD_STATIC_LIBRARY)
+LOCAL_LDLIBS := -lz \
+ -lc++_shared -L$(ANDROID_NDK)/sources/cxx-stl/llvm-libc++/libs/$(TARGET_ARCH_ABI)
+LOCAL_STATIC_LIBRARIES := etpan ssl crypto icu4c xml2 uchardet tidy ctemplate
+include $(BUILD_SHARED_LIBRARY)