R4SAS
2 years ago
committed by
GitHub
11 changed files with 358 additions and 34 deletions
@ -1,17 +1,16 @@
@@ -1,17 +1,16 @@
|
||||
[submodule "android-ifaddrs"] |
||||
path = app/jni/android-ifaddrs |
||||
url = https://github.com/PurpleI2P/android-ifaddrs.git |
||||
[submodule "i2pd"] |
||||
path = app/jni/i2pd |
||||
url = https://github.com/PurpleI2P/i2pd.git |
||||
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"] |
||||
path = app/jni/miniupnp |
||||
url = https://github.com/PurpleI2P/MiniUPnP-for-Android-Prebuilt.git |
||||
[submodule "android-ifaddrs"] |
||||
path = app/jni/android-ifaddrs |
||||
url = https://github.com/PurpleI2P/android-ifaddrs.git |
||||
url = https://github.com/miniupnp/miniupnp.git |
||||
[submodule "openssl"] |
||||
path = app/jni/openssl |
||||
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 @@
@@ -1 +1 @@
|
||||
Subproject commit 93de5720b8841569f25abe9fe498348582e002c4 |
||||
Subproject commit ccfc74f1c9ceb35d304294d4f1ed3abff43d2e01 |
@ -0,0 +1,128 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -1 +1 @@
|
||||
Subproject commit dd9bad896ba8ff49c3399e5c1624643a0b667e50 |
||||
Subproject commit 6576eb611b670c4841cc65095914275d6be008b2 |
Loading…
Reference in new issue