From f6d2ddffc031d8ff6f912f6c2fcad2b4582816a3 Mon Sep 17 00:00:00 2001 From: "Hoa V. DINH" Date: Sun, 7 Dec 2014 01:23:42 -0800 Subject: Shared library for Android --- build-android/.gitignore | 1 + build-android/build.sh | 13 ++++++++- build-android/jni/Android.mk | 66 +++++++++++++++++++++++++++++++++++++++----- 3 files changed, 72 insertions(+), 8 deletions(-) (limited to 'build-android') 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) -- cgit v1.2.3