mirror of
https://github.com/PurpleI2P/i2pd-android.git
synced 2024-12-06 19:27:28 +01:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 06f337f717 | |||
| cb322c6467 | |||
| cae2700b20 | |||
| 9203ba68a7 | |||
| 440b565c4b | |||
| ed54b2692b | |||
| 503f8a003e | |||
| 8347c04fb1 | |||
| c912f81429 | |||
| 27cdad53ba | |||
| 734693ba94 | |||
| 031c536945 | |||
| 988940f50a |
@@ -20,10 +20,8 @@ jobs:
|
||||
- name: Build required modules
|
||||
run: |
|
||||
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/23.2.8568313
|
||||
pushd app/jni
|
||||
./build_boost.sh
|
||||
./build_openssl.sh
|
||||
./build_miniupnpc.sh
|
||||
pushd binary/jni
|
||||
./build.sh
|
||||
popd
|
||||
- name: Build with Gradle
|
||||
run: ./gradlew --no-daemon assembleDebug
|
||||
@@ -47,18 +45,11 @@ jobs:
|
||||
run: export JAVA_HOME=$JAVA_HOME_11_X64
|
||||
- name: Install required Android SDK packages
|
||||
run: $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "cmake;3.22.1" "ndk;23.2.8568313"
|
||||
- name: Build required modules
|
||||
- name: Build binary with NDK
|
||||
run: |
|
||||
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/23.2.8568313
|
||||
pushd binary/jni
|
||||
./build_boost.sh
|
||||
./build_openssl.sh
|
||||
./build_miniupnpc.sh
|
||||
popd
|
||||
- name: Build binaries with NDK
|
||||
run: |
|
||||
pushd binary/jni
|
||||
$ANDROID_NDK_HOME/ndk-build -j2 NDK_MODULE_PATH=$PWD
|
||||
./build.sh -b
|
||||
popd
|
||||
- name: Create package with built binaries
|
||||
run: |
|
||||
|
||||
@@ -10,7 +10,6 @@ obj
|
||||
.externalNativeBuild
|
||||
ant.properties
|
||||
local.properties
|
||||
build.sh
|
||||
android.iml
|
||||
build
|
||||
*.iml
|
||||
|
||||
+5
-5
@@ -1,16 +1,16 @@
|
||||
[submodule "android-ifaddrs"]
|
||||
path = app/jni/android-ifaddrs
|
||||
path = binary/jni/android-ifaddrs
|
||||
url = https://github.com/PurpleI2P/android-ifaddrs.git
|
||||
[submodule "i2pd"]
|
||||
path = app/jni/i2pd
|
||||
path = binary/jni/i2pd
|
||||
url = https://github.com/PurpleI2P/i2pd.git
|
||||
branch = openssl
|
||||
[submodule "miniupnp"]
|
||||
path = app/jni/miniupnp
|
||||
path = binary/jni/miniupnp
|
||||
url = https://github.com/miniupnp/miniupnp.git
|
||||
[submodule "openssl"]
|
||||
path = app/jni/openssl
|
||||
path = binary/jni/openssl
|
||||
url = https://github.com/openssl/openssl.git
|
||||
[submodule "boost"]
|
||||
path = app/jni/boost
|
||||
path = binary/jni/boost
|
||||
url = https://github.com/moritz-wundke/Boost-for-Android.git
|
||||
|
||||
@@ -42,6 +42,7 @@ unzip commandlinetools-linux-8092744_latest.zip
|
||||
|
||||
```bash
|
||||
git clone --recurse-submodules https://github.com/PurpleI2P/i2pd-android.git
|
||||
cd i2pd-android
|
||||
```
|
||||
|
||||
### Compile application
|
||||
@@ -53,10 +54,8 @@ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
|
||||
export ANDROID_HOME=/opt/android-sdk
|
||||
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/23.2.8568313
|
||||
|
||||
pushd app/jni
|
||||
./build_boost.sh
|
||||
./build_openssl.sh
|
||||
./build_miniupnpc.sh
|
||||
pushd binary/jni
|
||||
./build.sh -d
|
||||
popd
|
||||
|
||||
gradle clean assembleDebug
|
||||
|
||||
+3
-3
@@ -29,8 +29,8 @@ android {
|
||||
targetSdkVersion 33
|
||||
// TODO: 24?
|
||||
minSdkVersion 16
|
||||
versionCode 2520000
|
||||
versionName "2.52.0"
|
||||
versionCode 2540000
|
||||
versionName "2.54.0"
|
||||
archivesBaseName += "-$versionName"
|
||||
ndkVersion "23.2.8568313"
|
||||
|
||||
@@ -43,7 +43,7 @@ android {
|
||||
|
||||
externalNativeBuild {
|
||||
ndkBuild {
|
||||
arguments "NDK_MODULE_PATH:=${rootProject.projectDir}/app/jni"
|
||||
arguments "NDK_MODULE_PATH:=${rootProject.projectDir}/binary/jni"
|
||||
arguments "-j${Runtime.getRuntime().availableProcessors()}"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,6 @@ 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 \
|
||||
@@ -36,20 +34,6 @@ LOCAL_SRC_FILES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/lib/libboost_syste
|
||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/include
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := boost_date_time
|
||||
LOCAL_SRC_FILES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/lib/libboost_date_time.a
|
||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/include
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := boost_filesystem
|
||||
LOCAL_SRC_FILES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/lib/libboost_filesystem.a
|
||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/include
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := boost_program_options
|
||||
|
||||
Submodule app/jni/android-ifaddrs deleted from f302cc7ead
Submodule app/jni/boost deleted from 53e6c16ea8
@@ -1,80 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
BOOST_VERSION=1.78.0
|
||||
BOOST_LIBS=date_time,filesystem,program_options,system
|
||||
|
||||
function build_one {
|
||||
echo "Configuring and building..."
|
||||
CXXFLAGS="-std=c++14" \
|
||||
NCPU=$(nproc) \
|
||||
./build-android.sh \
|
||||
--boost=$BOOST_VERSION \
|
||||
--arch=$CPU \
|
||||
--target-version=$API \
|
||||
--with-libraries=$BOOST_LIBS \
|
||||
--layout=system \
|
||||
$ANDROID_NDK_HOME
|
||||
}
|
||||
|
||||
function checkPreRequisites {
|
||||
|
||||
if ! [ -d "boost" ] || ! [ "$(ls -A boost)" ]; then
|
||||
echo -e "\033[31mFailed! Submodule 'boost' not found!\033[0m"
|
||||
echo -e "\033[31mTry to run: 'git submodule update --init'\033[0m"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z "$ANDROID_NDK_HOME" -a "$ANDROID_NDK_HOME" == "" ]; then
|
||||
echo -e "\033[31mFailed! ANDROID_NDK_HOME is empty. Run 'export ANDROID_NDK_HOME=[PATH_TO_NDK]'\033[0m"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
function build {
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
x86_64)
|
||||
API=21
|
||||
TARGET=x86_64
|
||||
build_one
|
||||
;;
|
||||
arm64)
|
||||
API=21
|
||||
CPU=arm64-v8a
|
||||
build_one
|
||||
;;
|
||||
x86)
|
||||
API=16
|
||||
CPU=x86
|
||||
build_one
|
||||
;;
|
||||
arm)
|
||||
API=16
|
||||
CPU=armeabi-v7a
|
||||
build_one
|
||||
;;
|
||||
all)
|
||||
API=16
|
||||
build_one
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
checkPreRequisites
|
||||
|
||||
cd boost
|
||||
|
||||
# disable verbose output
|
||||
sed -i -E -e 's/d\+2/d\+0/' build-android.sh
|
||||
sed -i -E -e 's/\"23\.1\"\|\"25\.0\"/\"23\.1\"\|\"23\.2\"\|\"25\.0\"/' build-android.sh
|
||||
|
||||
if (( $# == 0 )); then
|
||||
build all
|
||||
else
|
||||
build $@
|
||||
fi
|
||||
@@ -1,92 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
CMAKE_VERSION=3.22.1
|
||||
|
||||
function build_one {
|
||||
mkdir -p build out/$CPU
|
||||
cd build
|
||||
|
||||
cmake \
|
||||
-G "Unix Makefiles" \
|
||||
-DUPNPC_BUILD_SHARED=False \
|
||||
-DUPNPC_BUILD_TESTS=False \
|
||||
-DUPNPC_BUILD_SAMPLE=False \
|
||||
-DANDROID_NATIVE_API_LEVEL=$API \
|
||||
-DANDROID_ABI=$CPU \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DANDROID_NDK=$ANDROID_NDK_HOME \
|
||||
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=../out/$CPU \
|
||||
..
|
||||
|
||||
echo "Building..."
|
||||
cmake --build . -- libminiupnpc-static
|
||||
make install
|
||||
|
||||
cd ..
|
||||
rm -rf build
|
||||
}
|
||||
|
||||
function checkPreRequisites {
|
||||
|
||||
if ! [ -d "miniupnp" ] || ! [ "$(ls -A miniupnp)" ]; then
|
||||
echo -e "\033[31mFailed! Submodule 'miniupnp' not found!\033[0m"
|
||||
echo -e "\033[31mTry to run: 'git submodule update --init'\033[0m"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z "$ANDROID_HOME" -a "$ANDROID_HOME" == "" ]; then
|
||||
echo -e "\033[31mFailed! ANDROID_HOME is empty. Run 'export ANDROID_HOME=[PATH_TO_NDK]'\033[0m"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z "$ANDROID_NDK_HOME" -a "$ANDROID_NDK_HOME" == "" ]; then
|
||||
echo -e "\033[31mFailed! ANDROID_NDK_HOME is empty. Run 'export ANDROID_NDK_HOME=[PATH_TO_NDK]'\033[0m"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
function build {
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
x86_64)
|
||||
API=21
|
||||
CPU=x86_64
|
||||
build_one
|
||||
;;
|
||||
arm64)
|
||||
API=21
|
||||
CPU=arm64-v8a
|
||||
build_one
|
||||
;;
|
||||
arm)
|
||||
API=16
|
||||
CPU=armeabi-v7a
|
||||
build_one
|
||||
;;
|
||||
x86)
|
||||
API=16
|
||||
CPU=x86
|
||||
build_one
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
checkPreRequisites
|
||||
|
||||
cd miniupnp/miniupnpc
|
||||
rm -rf build out
|
||||
|
||||
# add cmake from Android SDK to PATH
|
||||
PATH=$ANDROID_HOME/cmake/$CMAKE_VERSION/bin:$PATH
|
||||
|
||||
if (( $# == 0 )); then
|
||||
build x86_64 arm64 arm x86
|
||||
else
|
||||
build $@
|
||||
fi
|
||||
@@ -1,93 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
HOST_OS=`uname -a`
|
||||
|
||||
function build_one {
|
||||
mkdir -p out/$CPU
|
||||
|
||||
echo "Configuring OpenSSL for $CPU..."
|
||||
./Configure \
|
||||
--prefix="$PWD/out/$CPU" \
|
||||
$TARGET \
|
||||
no-shared \
|
||||
no-tests \
|
||||
-D__ANDROID_API__=$API \
|
||||
-Wno-macro-redefined
|
||||
|
||||
echo "Building OpenSSL for $CPU..."
|
||||
make -j $(nproc) > out/build.log
|
||||
|
||||
make install_sw >> out/build.log
|
||||
|
||||
make clean
|
||||
}
|
||||
|
||||
function checkPreRequisites {
|
||||
|
||||
if ! [ -d "openssl" ] || ! [ "$(ls -A openssl)" ]; then
|
||||
echo -e "\033[31mFailed! Submodule 'openssl' not found!\033[0m"
|
||||
echo -e "\033[31mTry to run: 'git submodule update --init'\033[0m"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z "$ANDROID_NDK_HOME" -a "$ANDROID_NDK_HOME" == "" ]; then
|
||||
echo -e "\033[31mFailed! ANDROID_NDK_HOME is empty. Run 'export ANDROID_NDK_HOME=[PATH_TO_NDK]'\033[0m"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
function build {
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
x86_64)
|
||||
API=21
|
||||
CPU=x86_64
|
||||
TARGET=android-x86_64
|
||||
build_one
|
||||
;;
|
||||
arm64)
|
||||
API=21
|
||||
CPU=arm64-v8a
|
||||
TARGET=android-arm64
|
||||
build_one
|
||||
;;
|
||||
arm)
|
||||
API=16
|
||||
CPU=armeabi-v7a
|
||||
TARGET=android-arm
|
||||
build_one
|
||||
;;
|
||||
x86)
|
||||
API=16
|
||||
CPU=x86
|
||||
TARGET=android-x86
|
||||
build_one
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
checkPreRequisites
|
||||
|
||||
cd openssl
|
||||
rm -rf out
|
||||
|
||||
if [[ "$HOST_OS" == *"_NT-"* ]]; then
|
||||
PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/windows-x86_64/bin:$PATH
|
||||
else
|
||||
PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
|
||||
fi
|
||||
|
||||
if [[ -f 'Makefile' ]]; then
|
||||
make clean
|
||||
fi
|
||||
|
||||
if (( $# == 0 )); then
|
||||
build x86_64 arm64 arm x86
|
||||
else
|
||||
build $@
|
||||
fi
|
||||
-1
Submodule app/jni/i2pd deleted from 4163542125
Submodule app/jni/miniupnp deleted from 6576eb611b
Submodule app/jni/openssl deleted from e04bd3433f
@@ -1 +1 @@
|
||||
../../../jni/i2pd/contrib/certificates
|
||||
../../../../binary/jni/i2pd/contrib/certificates
|
||||
@@ -254,7 +254,6 @@ public class DaemonWrapper {
|
||||
copyAsset("certificates");
|
||||
copyAsset("tunnels.d");
|
||||
copyAsset("i2pd.conf");
|
||||
copyAsset("subscriptions.txt");
|
||||
copyAsset("tunnels.conf");
|
||||
|
||||
// update holder file about successful copying
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../../app/jni/android-ifaddrs
|
||||
Submodule
+1
Submodule binary/jni/android-ifaddrs added at f302cc7ead
@@ -1 +0,0 @@
|
||||
../../app/jni/boost
|
||||
Submodule
+1
Submodule binary/jni/boost added at 7daeea9727
Executable
+94
@@ -0,0 +1,94 @@
|
||||
#!/bin/bash
|
||||
|
||||
# https://stackoverflow.com/a/246128
|
||||
SOURCE="${0}"
|
||||
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
||||
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
|
||||
SOURCE="$(readlink "$SOURCE")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
done
|
||||
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
|
||||
|
||||
# Checking Android SDK
|
||||
if [ -z "$ANDROID_HOME" -a "$ANDROID_HOME" == "" ]; then
|
||||
echo -e "\033[31mFailed! ANDROID_HOME is empty. Run 'export ANDROID_HOME=[PATH_TO_SDK]'\033[0m"
|
||||
exit
|
||||
fi
|
||||
|
||||
# Checking Android NDK
|
||||
if [ -z "$ANDROID_NDK_HOME" -a "$ANDROID_NDK_HOME" == "" ]; then
|
||||
echo -e "\033[31mFailed! ANDROID_NDK_HOME is empty. Run 'export ANDROID_NDK_HOME=[PATH_TO_NDK]'\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
_NDK_OPTS="-j `nproc` NDK_MODULE_PATH=$DIR"
|
||||
|
||||
help()
|
||||
{
|
||||
echo "Syntax: $(basename "$SOURCE") [-m|d|s|h|v]"
|
||||
echo "Options:"
|
||||
echo "b Build binary."
|
||||
echo "d Debug build."
|
||||
echo "s Strip binaries."
|
||||
echo "x Skip libraries rebuild."
|
||||
echo "v Verbose NDK output."
|
||||
echo "h Print this Help."
|
||||
echo
|
||||
}
|
||||
|
||||
while getopts ":dbsvxh" option; do
|
||||
case $option in
|
||||
d) # debug build
|
||||
_NDK_OPTS="$_NDK_OPTS NDK_DEBUG=1"
|
||||
;;
|
||||
b) # build binary
|
||||
_BINARY=1
|
||||
;;
|
||||
s) # strip binaries
|
||||
_STRIP=1
|
||||
;;
|
||||
x) # skip libraries rebuild
|
||||
_SKIP_LIBS=1
|
||||
;;
|
||||
v) # verbose output
|
||||
_NDK_OPTS="$_NDK_OPTS V=1 NDK_LOG=1"
|
||||
;;
|
||||
h) # display help
|
||||
help
|
||||
exit;;
|
||||
\?) # Invalid option
|
||||
echo "Error: Invalid option. Use $(basename "$SOURCE") -h for help"
|
||||
exit;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Building
|
||||
if [ -z "$_SKIP_LIBS" ]; then
|
||||
echo "Building boost..."
|
||||
./build_boost.sh
|
||||
|
||||
echo "Building openssl..."
|
||||
./build_openssl.sh
|
||||
|
||||
echo "Building miniupnpc..."
|
||||
./build_miniupnpc.sh
|
||||
fi
|
||||
|
||||
if [ ! -z "$_BINARY" ]; then
|
||||
echo "Building i2pd..."
|
||||
$ANDROID_NDK_HOME/ndk-build $_NDK_OPTS
|
||||
fi
|
||||
|
||||
echo "Processing binaries (if requested)..."
|
||||
pushd $DIR/../libs > /dev/null
|
||||
for xarch in $(ls .); do
|
||||
if [ ! -z "$_STRIP" ]; then
|
||||
$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip -s $xarch/i2pd
|
||||
fi
|
||||
if [ ! -z "$_MODULE" ]; then
|
||||
mv $xarch/i2pd $xarch/libi2pd.so
|
||||
fi
|
||||
done
|
||||
popd > /dev/null
|
||||
|
||||
echo "Compilation finished"
|
||||
@@ -1 +0,0 @@
|
||||
../../app/jni/build_boost.sh
|
||||
Executable
+80
@@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
BOOST_VERSION=1.78.0
|
||||
BOOST_LIBS=date_time,filesystem,program_options,system
|
||||
|
||||
function build_one {
|
||||
echo "Configuring and building..."
|
||||
CXXFLAGS="-std=c++14" \
|
||||
NCPU=$(nproc) \
|
||||
./build-android.sh \
|
||||
--boost=$BOOST_VERSION \
|
||||
--arch=$CPU \
|
||||
--target-version=$API \
|
||||
--with-libraries=$BOOST_LIBS \
|
||||
--layout=system \
|
||||
$ANDROID_NDK_HOME
|
||||
}
|
||||
|
||||
function checkPreRequisites {
|
||||
|
||||
if ! [ -d "boost" ] || ! [ "$(ls -A boost)" ]; then
|
||||
echo -e "\033[31mFailed! Submodule 'boost' not found!\033[0m"
|
||||
echo -e "\033[31mTry to run: 'git submodule update --init'\033[0m"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z "$ANDROID_NDK_HOME" -a "$ANDROID_NDK_HOME" == "" ]; then
|
||||
echo -e "\033[31mFailed! ANDROID_NDK_HOME is empty. Run 'export ANDROID_NDK_HOME=[PATH_TO_NDK]'\033[0m"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
function build {
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
x86_64)
|
||||
API=21
|
||||
TARGET=x86_64
|
||||
build_one
|
||||
;;
|
||||
arm64)
|
||||
API=21
|
||||
CPU=arm64-v8a
|
||||
build_one
|
||||
;;
|
||||
x86)
|
||||
API=16
|
||||
CPU=x86
|
||||
build_one
|
||||
;;
|
||||
arm)
|
||||
API=16
|
||||
CPU=armeabi-v7a
|
||||
build_one
|
||||
;;
|
||||
all)
|
||||
API=16
|
||||
build_one
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
checkPreRequisites
|
||||
|
||||
cd boost
|
||||
|
||||
# disable verbose output
|
||||
sed -i -E -e 's/d\+2/d\+0/' build-android.sh
|
||||
sed -i -E -e 's/\"23\.1\"\|\"25\.0\"/\"23\.1\"\|\"23\.2\"\|\"25\.0\"/' build-android.sh
|
||||
|
||||
if (( $# == 0 )); then
|
||||
build all
|
||||
else
|
||||
build $@
|
||||
fi
|
||||
@@ -1 +0,0 @@
|
||||
../../app/jni/build_miniupnpc.sh
|
||||
Executable
+92
@@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
CMAKE_VERSION=3.22.1
|
||||
|
||||
function build_one {
|
||||
mkdir -p build out/$CPU
|
||||
cd build
|
||||
|
||||
cmake \
|
||||
-G "Unix Makefiles" \
|
||||
-DUPNPC_BUILD_SHARED=False \
|
||||
-DUPNPC_BUILD_TESTS=False \
|
||||
-DUPNPC_BUILD_SAMPLE=False \
|
||||
-DANDROID_NATIVE_API_LEVEL=$API \
|
||||
-DANDROID_ABI=$CPU \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DANDROID_NDK=$ANDROID_NDK_HOME \
|
||||
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=../out/$CPU \
|
||||
..
|
||||
|
||||
echo "Building..."
|
||||
cmake --build . -- libminiupnpc-static
|
||||
make install
|
||||
|
||||
cd ..
|
||||
rm -rf build
|
||||
}
|
||||
|
||||
function checkPreRequisites {
|
||||
|
||||
if ! [ -d "miniupnp" ] || ! [ "$(ls -A miniupnp)" ]; then
|
||||
echo -e "\033[31mFailed! Submodule 'miniupnp' not found!\033[0m"
|
||||
echo -e "\033[31mTry to run: 'git submodule update --init'\033[0m"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z "$ANDROID_HOME" -a "$ANDROID_HOME" == "" ]; then
|
||||
echo -e "\033[31mFailed! ANDROID_HOME is empty. Run 'export ANDROID_HOME=[PATH_TO_SDK]'\033[0m"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z "$ANDROID_NDK_HOME" -a "$ANDROID_NDK_HOME" == "" ]; then
|
||||
echo -e "\033[31mFailed! ANDROID_NDK_HOME is empty. Run 'export ANDROID_NDK_HOME=[PATH_TO_NDK]'\033[0m"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
function build {
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
x86_64)
|
||||
API=21
|
||||
CPU=x86_64
|
||||
build_one
|
||||
;;
|
||||
arm64)
|
||||
API=21
|
||||
CPU=arm64-v8a
|
||||
build_one
|
||||
;;
|
||||
arm)
|
||||
API=16
|
||||
CPU=armeabi-v7a
|
||||
build_one
|
||||
;;
|
||||
x86)
|
||||
API=16
|
||||
CPU=x86
|
||||
build_one
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
checkPreRequisites
|
||||
|
||||
cd miniupnp/miniupnpc
|
||||
rm -rf build out
|
||||
|
||||
# add cmake from Android SDK to PATH
|
||||
PATH=$ANDROID_HOME/cmake/$CMAKE_VERSION/bin:$PATH
|
||||
|
||||
if (( $# == 0 )); then
|
||||
build x86_64 arm64 arm x86
|
||||
else
|
||||
build $@
|
||||
fi
|
||||
@@ -1 +0,0 @@
|
||||
../../app/jni/build_openssl.sh
|
||||
Executable
+93
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
HOST_OS=`uname -a`
|
||||
|
||||
function build_one {
|
||||
mkdir -p out/$CPU
|
||||
|
||||
echo "Configuring OpenSSL for $CPU..."
|
||||
./Configure \
|
||||
--prefix="$PWD/out/$CPU" \
|
||||
$TARGET \
|
||||
no-shared \
|
||||
no-tests \
|
||||
-D__ANDROID_API__=$API \
|
||||
-Wno-macro-redefined
|
||||
|
||||
echo "Building OpenSSL for $CPU..."
|
||||
make -j $(nproc) > out/build.log
|
||||
|
||||
make install_sw >> out/build.log
|
||||
|
||||
make clean
|
||||
}
|
||||
|
||||
function checkPreRequisites {
|
||||
|
||||
if ! [ -d "openssl" ] || ! [ "$(ls -A openssl)" ]; then
|
||||
echo -e "\033[31mFailed! Submodule 'openssl' not found!\033[0m"
|
||||
echo -e "\033[31mTry to run: 'git submodule update --init'\033[0m"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z "$ANDROID_NDK_HOME" -a "$ANDROID_NDK_HOME" == "" ]; then
|
||||
echo -e "\033[31mFailed! ANDROID_NDK_HOME is empty. Run 'export ANDROID_NDK_HOME=[PATH_TO_NDK]'\033[0m"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
function build {
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
x86_64)
|
||||
API=21
|
||||
CPU=x86_64
|
||||
TARGET=android-x86_64
|
||||
build_one
|
||||
;;
|
||||
arm64)
|
||||
API=21
|
||||
CPU=arm64-v8a
|
||||
TARGET=android-arm64
|
||||
build_one
|
||||
;;
|
||||
arm)
|
||||
API=16
|
||||
CPU=armeabi-v7a
|
||||
TARGET=android-arm
|
||||
build_one
|
||||
;;
|
||||
x86)
|
||||
API=16
|
||||
CPU=x86
|
||||
TARGET=android-x86
|
||||
build_one
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
checkPreRequisites
|
||||
|
||||
cd openssl
|
||||
rm -rf out
|
||||
|
||||
if [[ "$HOST_OS" == *"_NT-"* ]]; then
|
||||
PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/windows-x86_64/bin:$PATH
|
||||
else
|
||||
PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
|
||||
fi
|
||||
|
||||
if [[ -f 'Makefile' ]]; then
|
||||
make clean
|
||||
fi
|
||||
|
||||
if (( $# == 0 )); then
|
||||
build x86_64 arm64 arm x86
|
||||
else
|
||||
build $@
|
||||
fi
|
||||
@@ -1 +0,0 @@
|
||||
../../app/jni/i2pd
|
||||
Submodule
+1
Submodule binary/jni/i2pd added at 905c6debf2
@@ -1 +0,0 @@
|
||||
../../app/jni/miniupnp
|
||||
Submodule
+1
Submodule binary/jni/miniupnp added at 6576eb611b
@@ -1 +0,0 @@
|
||||
../../app/jni/openssl
|
||||
Submodule
+1
Submodule binary/jni/openssl added at e04bd3433f
@@ -0,0 +1,2 @@
|
||||
* Updated codebase to 2.53.0
|
||||
* Change application service algorithm to work with binary instead of library. More changes about status in main activity are pending
|
||||
@@ -0,0 +1,2 @@
|
||||
* Updated codebase to 2.53.1
|
||||
* Revert to usage of the JNI
|
||||
@@ -0,0 +1 @@
|
||||
* Updated codebase to 2.54.0
|
||||
Reference in New Issue
Block a user