R4SAS
2 years ago
committed by
GitHub
11 changed files with 358 additions and 34 deletions
@ -1,17 +1,16 @@ |
|||||||
|
[submodule "android-ifaddrs"] |
||||||
|
path = app/jni/android-ifaddrs |
||||||
|
url = https://github.com/PurpleI2P/android-ifaddrs.git |
||||||
[submodule "i2pd"] |
[submodule "i2pd"] |
||||||
path = app/jni/i2pd |
path = app/jni/i2pd |
||||||
url = https://github.com/PurpleI2P/i2pd.git |
url = https://github.com/PurpleI2P/i2pd.git |
||||||
branch = openssl |
branch = openssl |
||||||
[submodule "boost"] |
|
||||||
path = app/jni/boost |
|
||||||
url = https://github.com/PurpleI2P/Boost-for-Android-Prebuilt.git |
|
||||||
branch = boost-1_72_0 |
|
||||||
[submodule "openssl"] |
|
||||||
path = app/jni/openssl |
|
||||||
url = https://github.com/PurpleI2P/OpenSSL-for-Android-Prebuilt.git |
|
||||||
[submodule "miniupnp"] |
[submodule "miniupnp"] |
||||||
path = app/jni/miniupnp |
path = app/jni/miniupnp |
||||||
url = https://github.com/PurpleI2P/MiniUPnP-for-Android-Prebuilt.git |
url = https://github.com/miniupnp/miniupnp.git |
||||||
[submodule "android-ifaddrs"] |
[submodule "openssl"] |
||||||
path = app/jni/android-ifaddrs |
path = app/jni/openssl |
||||||
url = https://github.com/PurpleI2P/android-ifaddrs.git |
url = https://github.com/openssl/openssl.git |
||||||
|
[submodule "boost"] |
||||||
|
path = app/jni/boost |
||||||
|
url = https://github.com/moritz-wundke/Boost-for-Android.git |
||||||
|
@ -1 +1 @@ |
|||||||
Subproject commit 93de5720b8841569f25abe9fe498348582e002c4 |
Subproject commit ccfc74f1c9ceb35d304294d4f1ed3abff43d2e01 |
@ -0,0 +1,128 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
set -e |
||||||
|
|
||||||
|
BOOST_VERSION=1.74.0 |
||||||
|
BOOST_VERSION_SUFFIX=1_74 |
||||||
|
BOOST_LIBS=date_time,filesystem,program_options,system |
||||||
|
|
||||||
|
REMOVE_BOOST_LIBS_SUFFIX_x86_64=-clang-mt-x64-${BOOST_VERSION_SUFFIX} |
||||||
|
REMOVE_BOOST_LIBS_SUFFIX_ARM64=-clang-mt-a64-${BOOST_VERSION_SUFFIX} |
||||||
|
REMOVE_BOOST_LIBS_SUFFIX_x86=-clang-mt-x32-${BOOST_VERSION_SUFFIX} |
||||||
|
REMOVE_BOOST_LIBS_SUFFIX_ARM=-clang-mt-a32-${BOOST_VERSION_SUFFIX} |
||||||
|
|
||||||
|
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} \ |
||||||
|
${ANDROID_NDK_HOME} |
||||||
|
|
||||||
|
case "${CPU}" in |
||||||
|
x86_64) |
||||||
|
mkdir -p out/{x86_64,include} |
||||||
|
cp build/out/x86_64/lib/*.a out/${CPU} |
||||||
|
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_x86_64}'//' out/x86_64/*.a |
||||||
|
cp -r build/out/x86_64/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include |
||||||
|
|
||||||
|
;; |
||||||
|
arm64-v8a) |
||||||
|
mkdir -p out/{arm64-v8a,include} |
||||||
|
cp build/out/arm64-v8a/lib/*.a out/${CPU} |
||||||
|
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_ARM64}'//' out/arm64-v8a/*.a |
||||||
|
cp -r build/out/arm64-v8a/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include |
||||||
|
;; |
||||||
|
x86) |
||||||
|
mkdir -p out/{x86,include} |
||||||
|
cp build/out/x86/lib/*.a out/${CPU} |
||||||
|
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_x86}'//' out/x86/*.a |
||||||
|
cp -r build/out/x86/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include |
||||||
|
;; |
||||||
|
armeabi-v7a) |
||||||
|
mkdir -p out/{armeabi-v7a,include} |
||||||
|
cp build/out/armeabi-v7a/lib/*.a out/${CPU} |
||||||
|
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_ARM}'//' out/armeabi-v7a/*.a |
||||||
|
cp -r build/out/armeabi-v7a/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include |
||||||
|
;; |
||||||
|
*) |
||||||
|
mkdir -p out/{x86_64,arm64-v8a,x86,armeabi-v7a,include} |
||||||
|
|
||||||
|
cp build/out/x86_64/lib/*.a out/x86_64 |
||||||
|
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_x86_64}'//' out/x86_64/*.a |
||||||
|
|
||||||
|
cp build/out/arm64-v8a/lib/*.a out/arm64-v8a |
||||||
|
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_ARM64}'//' out/arm64-v8a/*.a |
||||||
|
|
||||||
|
cp build/out/x86/lib/*.a out/x86 |
||||||
|
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_x86}'//' out/x86/*.a |
||||||
|
|
||||||
|
cp build/out/armeabi-v7a/lib/*.a out/armeabi-v7a |
||||||
|
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_ARM}'//' out/armeabi-v7a/*.a |
||||||
|
|
||||||
|
cp -r build/out/arm64-v8a/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include |
||||||
|
;; |
||||||
|
esac |
||||||
|
} |
||||||
|
|
||||||
|
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 |
||||||
|
} |
||||||
|
|
||||||
|
checkPreRequisites |
||||||
|
|
||||||
|
cd boost |
||||||
|
rm -rf out |
||||||
|
|
||||||
|
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 |
||||||
|
CPU=x86_64,arm64-v8a,x86,armeabi-v7a |
||||||
|
build_one |
||||||
|
;; |
||||||
|
*) |
||||||
|
;; |
||||||
|
esac |
||||||
|
done |
||||||
|
} |
||||||
|
|
||||||
|
if (( $# == 0 )); then |
||||||
|
build all |
||||||
|
else |
||||||
|
build $@ |
||||||
|
fi |
@ -0,0 +1,89 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
set -e |
||||||
|
|
||||||
|
|
||||||
|
function build_one { |
||||||
|
mkdir -p out/${CPU} |
||||||
|
cd out/${CPU} |
||||||
|
|
||||||
|
cmake \ |
||||||
|
-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 \ |
||||||
|
../.. |
||||||
|
|
||||||
|
echo "Building..." |
||||||
|
cmake --build . -- libminiupnpc-static |
||||||
|
|
||||||
|
cd ../.. |
||||||
|
|
||||||
|
if [[ -n 'out/include' ]]; then |
||||||
|
mkdir -p out/include/miniupnpc |
||||||
|
cp include/* out/include/miniupnpc |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
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_SDK_ROOT" -a "$ANDROID_SDK_ROOT" == "" ]; then |
||||||
|
echo -e "\033[31mFailed! ANDROID_SDK_ROOT is empty. Run 'export ANDROID_SDK_ROOT=[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 |
||||||
|
} |
||||||
|
|
||||||
|
checkPreRequisites |
||||||
|
|
||||||
|
cd miniupnp/miniupnpc |
||||||
|
rm -rf out |
||||||
|
|
||||||
|
# add cmake from Android SDK to PATH |
||||||
|
PATH=$ANDROID_SDK_ROOT/cmake/3.10.2.4988404/bin:$PATH |
||||||
|
|
||||||
|
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 |
||||||
|
} |
||||||
|
|
||||||
|
if (( $# == 0 )); then |
||||||
|
build x86_64 arm64 arm x86 |
||||||
|
else |
||||||
|
build $@ |
||||||
|
fi |
@ -0,0 +1,95 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
set -e |
||||||
|
|
||||||
|
|
||||||
|
function build_one { |
||||||
|
mkdir -p out/${CPU} |
||||||
|
|
||||||
|
echo "Configuring..." |
||||||
|
./Configure \ |
||||||
|
${TARGET} \ |
||||||
|
no-shared \ |
||||||
|
no-ssl3 \ |
||||||
|
no-comp \ |
||||||
|
no-hw \ |
||||||
|
no-engine \ |
||||||
|
no-tests \ |
||||||
|
--prefix="$PWD/output" \ |
||||||
|
-D__ANDROID_API__=${API} |
||||||
|
|
||||||
|
echo "Building..." |
||||||
|
make -j $(nproc) |
||||||
|
|
||||||
|
make install_sw |
||||||
|
|
||||||
|
cp output/lib/*.a out/${CPU} |
||||||
|
|
||||||
|
if [[ -n 'out/include' ]]; then |
||||||
|
mkdir -p out/include |
||||||
|
cp -r output/include/openssl out/include |
||||||
|
fi |
||||||
|
|
||||||
|
rm -rf output |
||||||
|
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 |
||||||
|
} |
||||||
|
|
||||||
|
checkPreRequisites |
||||||
|
|
||||||
|
cd openssl |
||||||
|
rm -rf out |
||||||
|
|
||||||
|
PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH |
||||||
|
|
||||||
|
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 |
||||||
|
} |
||||||
|
|
||||||
|
if (( $# == 0 )); then |
||||||
|
build x86_64 arm64 arm x86 |
||||||
|
else |
||||||
|
build $@ |
||||||
|
fi |
@ -1 +1 @@ |
|||||||
Subproject commit dd9bad896ba8ff49c3399e5c1624643a0b667e50 |
Subproject commit 6576eb611b670c4841cc65095914275d6be008b2 |
Loading…
Reference in new issue