Browse Source

update libraries, add binary build files

Signed-off-by: r4sas <r4sas@i2pmail.org>
pull/37/head
R4SAS 3 years ago
parent
commit
0191d6a228
Signed by: r4sas
GPG Key ID: 66F6C87B98EBCFE2
  1. 3
      app/jni/Android.mk
  2. 2
      app/jni/android-ifaddrs
  3. 35
      app/jni/build_miniupnpc.sh
  4. 8
      app/jni/build_openssl.sh
  5. 79
      binary/jni/Android.mk
  6. 34
      binary/jni/Application.mk
  7. 1
      binary/jni/android-ifaddrs
  8. 1
      binary/jni/boost
  9. 1
      binary/jni/build_boost.sh
  10. 1
      binary/jni/build_miniupnpc.sh
  11. 1
      binary/jni/build_openssl.sh
  12. 1
      binary/jni/i2pd
  13. 1
      binary/jni/miniupnp
  14. 1
      binary/jni/openssl

3
app/jni/Android.mk

@ -16,7 +16,8 @@ LOCAL_LDLIBS := -lz
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
DaemonAndroid.cpp \ DaemonAndroid.cpp \
i2pd_android.cpp \ i2pd_android.cpp \
$(IFADDRS_PATH)/ifaddrs.c \ $(IFADDRS_PATH)/ifaddrs.cpp \
$(IFADDRS_PATH)/boinic_netlink.cpp \
$(wildcard $(LIB_SRC_PATH)/*.cpp) \ $(wildcard $(LIB_SRC_PATH)/*.cpp) \
$(wildcard $(LIB_CLIENT_SRC_PATH)/*.cpp) \ $(wildcard $(LIB_CLIENT_SRC_PATH)/*.cpp) \
$(wildcard $(LANG_SRC_PATH)/*.cpp) \ $(wildcard $(LANG_SRC_PATH)/*.cpp) \

2
app/jni/android-ifaddrs

@ -1 +1 @@
Subproject commit 41f6ba66f28c3e321e640c249071f332f91f57f6 Subproject commit f302cc7ead971d4068661d34c2f3ba06063d8ea2

35
app/jni/build_miniupnpc.sh

@ -2,27 +2,32 @@
set -e set -e
CMAKE_VERSION=3.18.1
function build_one { function build_one {
mkdir -p out/${CPU} mkdir -p out/${CPU}
cd out/${CPU} cd out/${CPU}
cmake \ cmake \
-DANDROID_NATIVE_API_LEVEL=${API} \ -DUPNPC_BUILD_SHARED=False \
-DANDROID_ABI=${CPU} \ -DUPNPC_BUILD_TESTS=False \
-DCMAKE_BUILD_TYPE=Release \ -DUPNPC_BUILD_SAMPLE=False \
-DANDROID_NDK=${ANDROID_NDK_HOME} \ -DANDROID_NATIVE_API_LEVEL=${API} \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake \ -DANDROID_ABI=${CPU} \
../.. -DCMAKE_BUILD_TYPE=Release \
-DANDROID_NDK=${ANDROID_NDK_HOME} \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake \
../..
echo "Building..." echo "Building..."
cmake --build . -- libminiupnpc-static cmake --build . -- libminiupnpc-static
cd ../.. cd ../..
if [[ -n 'out/include' ]]; then if [[ -n 'out/include' ]]; then
mkdir -p out/include/miniupnpc mkdir -p out/include/miniupnpc
cp include/* out/include/miniupnpc cp include/* out/include/miniupnpc
fi fi
} }
function checkPreRequisites { function checkPreRequisites {
@ -50,7 +55,7 @@ cd miniupnp/miniupnpc
rm -rf out rm -rf out
# add cmake from Android SDK to PATH # add cmake from Android SDK to PATH
PATH=$ANDROID_SDK_ROOT/cmake/3.10.2.4988404/bin:$PATH PATH=$ANDROID_SDK_ROOT/cmake/${CMAKE_VERSION}/bin:$PATH
function build { function build {
for arg in "$@"; do for arg in "$@"; do

8
app/jni/build_openssl.sh

@ -18,6 +18,7 @@ function build_one {
echo "Building OpenSSL for ${CPU}..." echo "Building OpenSSL for ${CPU}..."
make -j $(nproc) > output/build.log make -j $(nproc) > output/build.log
echo "Installing to temporary directory..."
make install_sw >> output/build.log make install_sw >> output/build.log
cp output/lib/*.a out/${CPU} cp output/lib/*.a out/${CPU}
@ -48,7 +49,12 @@ function checkPreRequisites {
checkPreRequisites checkPreRequisites
cd openssl cd openssl
rm -rf out rm -rf out output
if [[ -f 'Makefile' ]]; then
make clean
fi
PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH

79
binary/jni/Android.mk

@ -0,0 +1,79 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := i2pd
LOCAL_CPP_FEATURES := rtti exceptions
LOCAL_C_INCLUDES += $(IFADDRS_PATH) $(LIB_SRC_PATH) $(LIB_CLIENT_SRC_PATH) $(LANG_SRC_PATH) $(DAEMON_SRC_PATH)
LOCAL_STATIC_LIBRARIES := \
boost_system \
boost_date_time \
boost_filesystem \
boost_program_options \
crypto \
ssl \
miniupnpc
LOCAL_LDLIBS := -lz
LOCAL_SRC_FILES := \
$(IFADDRS_PATH)/ifaddrs.cpp \
$(IFADDRS_PATH)/bionic_netlink.cpp \
$(wildcard $(LIB_SRC_PATH)/*.cpp) \
$(wildcard $(LIB_CLIENT_SRC_PATH)/*.cpp) \
$(wildcard $(LANG_SRC_PATH)/*.cpp) \
$(DAEMON_SRC_PATH)/UnixDaemon.cpp \
$(DAEMON_SRC_PATH)/Daemon.cpp \
$(DAEMON_SRC_PATH)/UPnP.cpp \
$(DAEMON_SRC_PATH)/HTTPServer.cpp \
$(DAEMON_SRC_PATH)/I2PControl.cpp \
$(DAEMON_SRC_PATH)/i2pd.cpp \
include $(BUILD_EXECUTABLE)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := boost_system
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_system.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := boost_date_time
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_date_time.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := boost_filesystem
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_filesystem.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := boost_program_options
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_program_options.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := crypto
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/libcrypto.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ssl
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/libssl.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/include
LOCAL_STATIC_LIBRARIES := crypto
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := miniupnpc
LOCAL_SRC_FILES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/libminiupnpc.a
LOCAL_EXPORT_C_INCLUDES := $(MINIUPNP_PATH)/miniupnpc/out/include
include $(PREBUILT_STATIC_LIBRARY)

34
binary/jni/Application.mk

@ -0,0 +1,34 @@
APP_ABI += all
#APP_ABI += arm64-v8a
#APP_ABI += armeabi-v7a
#APP_ABI += x86_64
#APP_ABI += x86
APP_PLATFORM := android-16
#APP_PLATFORM := android-21
NDK_TOOLCHAIN_VERSION := clang
APP_STL := c++_static
# Enable c++17 extensions in source code
APP_CPPFLAGS += -std=c++17 -fexceptions -frtti
APP_CPPFLAGS += -DANDROID_BINARY -DANDROID -D__ANDROID__ -DUSE_UPNP -Wno-deprecated-declarations
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
APP_CPPFLAGS += -DANDROID_ARM7A
endif
APP_LDFLAGS += -fPIE
IFADDRS_PATH = $(NDK_MODULE_PATH)/android-ifaddrs
BOOST_PATH = $(NDK_MODULE_PATH)/boost
MINIUPNP_PATH = $(NDK_MODULE_PATH)/miniupnp
OPENSSL_PATH = $(NDK_MODULE_PATH)/openssl
# don't change me
I2PD_SRC_PATH = $(NDK_MODULE_PATH)/i2pd
LIB_SRC_PATH = $(I2PD_SRC_PATH)/libi2pd
LIB_CLIENT_SRC_PATH = $(I2PD_SRC_PATH)/libi2pd_client
LANG_SRC_PATH = $(I2PD_SRC_PATH)/i18n
DAEMON_SRC_PATH = $(I2PD_SRC_PATH)/daemon

1
binary/jni/android-ifaddrs

@ -0,0 +1 @@
../../app/jni/android-ifaddrs

1
binary/jni/boost

@ -0,0 +1 @@
../../app/jni/boost

1
binary/jni/build_boost.sh

@ -0,0 +1 @@
../../app/jni/build_boost.sh

1
binary/jni/build_miniupnpc.sh

@ -0,0 +1 @@
../../app/jni/build_miniupnpc.sh

1
binary/jni/build_openssl.sh

@ -0,0 +1 @@
../../app/jni/build_openssl.sh

1
binary/jni/i2pd

@ -0,0 +1 @@
../../app/jni/i2pd

1
binary/jni/miniupnp

@ -0,0 +1 @@
../../app/jni/miniupnp

1
binary/jni/openssl

@ -0,0 +1 @@
../../app/jni/openssl
Loading…
Cancel
Save