Browse Source

PEMA-103

Fixed Cargo's compile arguments, added crate commands to create a .so, will review them later to see if I require "lib".

Commented the compile only for device arch as it is slightly buggy on emulator.
pull/25/head
Sascha Bacardit 3 years ago
parent
commit
a191ea2986
  1. 4
      android/build.gradle
  2. 11
      android/external/MakefileTemplate
  3. 5
      android/jni/Android.mk
  4. 2
      android/src/foundation/pEp/jniadapter/AndroidHelper.java

4
android/build.gradle

@ -11,7 +11,7 @@ def threadsToUse = 1
def pEpEngineDB = new File(new File(pEpEngineSrc), 'db')
ext.archsToCompile = "arm arm64 x86 x86_64"
apply from: 'gradle/plugins/set-pep-jniadapter-archs.gradle'
//apply from: 'gradle/plugins/set-pep-jniadapter-archs.gradle'
buildscript {
repositories {
@ -167,7 +167,7 @@ android {
buildpEpEngineSystemDB.dependsOn(buildExternal)
}
if(isIdeBuild()) {
buildExternal.dependsOn(setpEpJNIAdapterArchs)
// buildExternal.dependsOn(setpEpJNIAdapterArchs)
}
// This ensures that assets are populated before collecting resources.

11
android/external/MakefileTemplate

@ -267,12 +267,13 @@ pEpEngineSequoiaBackend.src.stamp: ../downloads/pEpEngineSequoiaBackend.tar.gz
mkdir -p pEpEngineSequoiaBackend
cd pEpEngineSequoiaBackend && tar xvf ../$<
$(SED) -i 's,1.48.0,1.60,' pEpEngineSequoiaBackend/rust-toolchain
cp ../Cargo.toml.tmp pEpEngineSequoiaBackend/Cargo.toml
mkdir -p $(LOCAL)/lib/
# This is a bad fix, we should move this to a common makefile (but not the .conf one)
find -L $(ANDROID_NDK) -name libunwind.a -execdir sh -c 'echo "INPUT(-lunwind)" > $(LOCAL)/lib/libgcc.a' \;
touch $@
$(CARGO_TARGET_DIR)/$(SEQUOIA_ARCH)/release/libpep_engine_sequoia_backend.so: pEpEngineSequoiaBackend.src.stamp $(LOCAL)/lib/libssl.so $(LOCAL)/lib/libnettle.so
$(CARGO_TARGET_DIR)/$(SEQUOIA_ARCH)/release/libpep_engine_sequoia_backend.a: pEpEngineSequoiaBackend.src.stamp $(LOCAL)/lib/libssl.so $(LOCAL)/lib/libnettle.so
cd pEpEngineSequoiaBackend && PATH=$(TEMP_WORK_PATH) \
CC="$(CC)" LD="$(LD)" AR="$(AR)" AS="$(AS)" RANLIB=$(RANLIB) STRIP="$(STRIP)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
LD_LIBRARY_PATH=$(LOCAL)/lib/ \
@ -282,14 +283,14 @@ $(CARGO_TARGET_DIR)/$(SEQUOIA_ARCH)/release/libpep_engine_sequoia_backend.so: p
ARMV7_LINUX_ANDROIDEABI_OPENSSL_INCLUDE_DIR="$(LOCAL)/include" \
ARMV7_LINUX_ANDROIDEABI_OPENSSL_DIR="$(LOCAL)/bin" \
CARGO_TARGET_DIR=$(CARGO_TARGET_DIR) cargo build --target $(SEQUOIA_ARCH) -p pep_engine_sequoia_backend --release
#TODO PEMA-103 we cna move seq to static (.a)
$(LOCAL)/lib/libpep_engine_sequoia_backend.so: $(CARGO_TARGET_DIR)/$(SEQUOIA_ARCH)/release/libpep_engine_sequoia_backend.so
$(LOCAL)/lib/libpep_engine_sequoia_backend.a: $(CARGO_TARGET_DIR)/$(SEQUOIA_ARCH)/release/libpep_engine_sequoia_backend.a
cp $(CARGO_TARGET_DIR)/$(SEQUOIA_ARCH)/release/libpep_engine_sequoia_backend.* $(LOCAL)/lib/
pEpEngineSequoiaBackend-build: $(CARGO_TARGET_DIR)/$(SEQUOIA_ARCH)/release/libpep_engine_sequoia_backend.so
pEpEngineSequoiaBackend-build: $(CARGO_TARGET_DIR)/$(SEQUOIA_ARCH)/release/libpep_engine_sequoia_backend.a
pEpEngineSequoiaBackend-install: $(LOCAL)/lib/libssl.so $(LOCAL)/lib/libnettle.so $(LOCAL)/lib/libpep_engine_sequoia_backend.so
pEpEngineSequoiaBackend-install: $(LOCAL)/lib/libssl.so $(LOCAL)/lib/libnettle.so $(LOCAL)/lib/libpep_engine_sequoia_backend.a
#------------------------------------------------------------------------------#
# assets for Android app

5
android/jni/Android.mk

@ -3,7 +3,6 @@ SRC_PATH := $(LOCAL_PATH)/../../../
ENGINE_PATH := $(LOCAL_PATH)/../../../pEpEngine
LIB_PEP_ADAPTER_PATH:=$(SRC_PATH)/libpEpAdapter
LIB_PEP_CXX11_PATH:=$(SRC_PATH)/libpEpCxx11
#LIB_PEP_TRANSPORT_PATH:=$(SRC_PATH)/libpEpTransport
GPGBUILD:= $(LOCAL_PATH)/../external/output/
include $(CLEAR_VARS)
@ -39,12 +38,12 @@ LOCAL_EXPORT_C_INCLUDES += $(GPGBUILD)/$(TARGET_ARCH_ABI)/include
LOCAL_EXPORT_LDLIBS := -lz
include $(PREBUILT_STATIC_LIBRARY)
#Take out Engine Headers
$(shell sh $(ENGINE_PATH)/build-android/takeOutHeaderFiles.sh $(ENGINE_PATH))
include $(CLEAR_VARS)
LOCAL_MODULE := pEpJNI
#TODO PEMA-103 we cna move seq to static
LOCAL_SHARED_LIBRARIES := libnettle libhogweed libgmp
LOCAL_STATIC_LIBRARIES := pEpEngine libetpan libuuid libiconv pEpAdapter pEpCxx11 libpep_engine_sequoia_backend
LOCAL_CPP_FEATURES += exceptions
@ -86,7 +85,6 @@ $(info $(LOCAL_PATH))
$(warning ==== JNIADAPTER android.mk CALLING import-module uuid)
$(call import-module, pEpJNIAdapter/android/external/$(TARGET_ARCH_ABI)/uuid/jni)
$(warning ==== CURRENT LOCAL BUILT MODULE: $(LOCAL_BUILT_MODULE))
MY_UUID_BUILD := $(LOCAL_BUILT_MODULE)
#$(call import-module, libpEpTransport/build-android/jni/)
$(warning ==== CURRENT NDK LIBS OUT: $(NDK_LIBS_OUT))
$(warning ==== CURRENT NDK OUT: $(NDK_OUT))
@ -102,7 +100,6 @@ $(warning ==== CURRENT TARGET OUT: $(TARGET_OUT))
$(warning ==== JNIADAPTER android.mk CALLING import-module pEpEngine)
$(call import-module, pEpEngine/build-android/jni/)
$(warning ==== CURRENT LOCAL BUILT MODULE: $(LOCAL_BUILT_MODULE))
#pEpEngine.ndkBuild.stamp: $(MY_UUID_BUILD)
#echo "==== INSIDE RECIPE: JNIADAPTER android.mk CALLING import-module pEpEngine"
$(warning ==== JNIADAPTER android.mk CALLING import-module pEpEngine)
$(call import-module, pEpEngine/build-android/jni/)

2
android/src/foundation/pEp/jniadapter/AndroidHelper.java

@ -128,8 +128,6 @@ public class AndroidHelper {
System.loadLibrary("gmp");
System.loadLibrary("nettle");
System.loadLibrary("hogweed");
//TODO PEMA-103 Check if we are required to link the shared lib here
// System.loadLibrary("libpep_engine_sequoia_backend");
migrateFromGPGToSequoiaIfNeeded(c.getFilesDir());

Loading…
Cancel
Save