Browse Source

[chore] update i2pd to 2.53.0, change build script

Signed-off-by: r4sas <r4sas@i2pmail.org>
pull/82/head
R4SAS 4 months ago
parent
commit
031c536945
Signed by: r4sas
GPG Key ID: 66F6C87B98EBCFE2
  1. 1
      .gitignore
  2. 2
      app/jni/build_miniupnpc.sh
  3. 2
      app/jni/i2pd
  4. 83
      binary/jni/build.sh
  5. 23
      binary/jni/build_debug.sh
  6. 20
      binary/jni/build_release.sh
  7. 16
      binary/jni/ndkbuild-wrapper.sh

1
.gitignore vendored

@ -10,7 +10,6 @@ obj
.externalNativeBuild .externalNativeBuild
ant.properties ant.properties
local.properties local.properties
build.sh
android.iml android.iml
build build
*.iml *.iml

2
app/jni/build_miniupnpc.sh

@ -38,7 +38,7 @@ function checkPreRequisites {
fi fi
if [ -z "$ANDROID_HOME" -a "$ANDROID_HOME" == "" ]; then 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" echo -e "\033[31mFailed! ANDROID_HOME is empty. Run 'export ANDROID_HOME=[PATH_TO_SDK]'\033[0m"
exit exit
fi fi

2
app/jni/i2pd

@ -1 +1 @@
Subproject commit 4163542125925e0b098d43e1471c86e1bd935cdd Subproject commit 9a6654943d9b90687fa474ba0ffbf024851d92f2

83
binary/jni/build.sh

@ -0,0 +1,83 @@
#!/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 "m Rename binaries as libraries."
echo "d Debug build."
echo "s Strip binaries."
echo "h Print this Help."
echo "v Verbose NDK output."
echo
}
while getopts ":dmsvh" option; do
case $option in
d) # debug build
_NDK_OPTS="$_NDK_OPTS NDK_DEBUG=1"
;;
m) # make module
_MODULE=1
;;
s) # strip binaries
_STRIP=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
echo Building boost...
./build_boost.sh
echo Building openssl...
./build_openssl.sh
echo Building miniupnpc...
./build_miniupnpc.sh
echo Building i2pd...
$ANDROID_NDK_HOME/ndk-build $_NDK_OPTS
pushd $DIR/../libs
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

23
binary/jni/build_debug.sh

@ -1,23 +0,0 @@
export I2PD_DEBUG=1
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
echo Building boost...
./build_boost.sh
echo Building miniupnpc...
./build_miniupnpc.sh
echo Building openssl...
./build_openssl.sh
echo Building i2pd...
pushd .
NDK_MODULE_PATH=`pwd`
cd ..
NDK_PROJECT_PATH=`pwd`
popd
if [ -z "$BUILD_SO" -a "$BUILD_SO" == "" ]; then
export NDK_MODULE_PATH=$NDK_MODULE_PATH && export NDK_PROJECT_PATH=$NDK_PROJECT_PATH && $ANDROID_NDK_HOME/ndk-build V=1 NDK_LOG=1 -j`nproc` NDK_DEBUG=1
else
export NDK_MODULE_PATH=$NDK_MODULE_PATH && export NDK_PROJECT_PATH=$NDK_PROJECT_PATH && ./ndkbuild-wrapper.sh V=1 NDK_LOG=1 -j`nproc` NDK_DEBUG=1
fi
echo "$0 completed."

20
binary/jni/build_release.sh

@ -1,20 +0,0 @@
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
echo Building boost...
./build_boost.sh
echo Building miniupnpc...
./build_miniupnpc.sh
echo Building openssl...
./build_openssl.sh
echo Building i2pd...
NDK_MODULE_PATH=`pwd`
cd ..
NDK_PROJECT_PATH=`pwd`
if [ -z "$BUILD_SO" -a "$BUILD_SO" == "" ]; then
export NDK_MODULE_PATH=$NDK_MODULE_PATH && export NDK_PROJECT_PATH=$NDK_PROJECT_PATH && $ANDROID_NDK_HOME/ndk-build V=1 NDK_LOG=1 -j`nproc`
else
export NDK_MODULE_PATH=$NDK_MODULE_PATH && export NDK_PROJECT_PATH=$NDK_PROJECT_PATH && ./ndkbuild-wrapper.sh V=1 NDK_LOG=1 -j`nproc`
fi
echo "$0 completed."

16
binary/jni/ndkbuild-wrapper.sh

@ -1,16 +0,0 @@
#!/usr/bin/env bash
cd $NDK_PROJECT_PATH/jni
$ANDROID_NDK_HOME/ndk-build $*
# if it doesn't exist, then create
if [ ! -d $NDK_PROJECT_PATH/libs ]; then mkdir $NDK_PROJECT_PATH/libs; fi
cd $NDK_PROJECT_PATH/libs
for f in $(ls .);
do
if [ -z "$I2PD_DEBUG" -a "$I2PD_DEBUG" == "" ]; then
strip $f/i2pd
fi
mv $f/i2pd $f/libi2pd.so
done
Loading…
Cancel
Save