mirror of
https://github.com/PurpleI2P/i2pd-android.git
synced 2025-02-09 05:14:24 +00:00
[jni] switch to build from sources (#32)
This commit is contained in:
parent
d9bbe52238
commit
c85c4fb6c1
17
.github/workflows/android.yml
vendored
17
.github/workflows/android.yml
vendored
@ -9,6 +9,10 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
submodules: 'recursive'
|
submodules: 'recursive'
|
||||||
|
- name: Install rename tool
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install rename
|
||||||
- name: Setup JDK 1.8
|
- name: Setup JDK 1.8
|
||||||
uses: actions/setup-java@v1
|
uses: actions/setup-java@v1
|
||||||
with:
|
with:
|
||||||
@ -17,10 +21,19 @@ jobs:
|
|||||||
uses: maxim-lobanov/setup-android-tools@v1
|
uses: maxim-lobanov/setup-android-tools@v1
|
||||||
with:
|
with:
|
||||||
packages: |
|
packages: |
|
||||||
build-tools;28.0.3
|
build-tools;29.0.3
|
||||||
platforms;android-29
|
platforms;android-29
|
||||||
ndk;20.0.5594570
|
ndk;21.4.7075529
|
||||||
cache: true
|
cache: true
|
||||||
|
- name: Build required modules
|
||||||
|
run: |
|
||||||
|
export ANDROID_SDK_ROOT=$ANDROID_HOME
|
||||||
|
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/21.4.7075529
|
||||||
|
pushd app/jni
|
||||||
|
./build_boost.sh
|
||||||
|
./build_openssl.sh
|
||||||
|
./build_miniupnpc.sh
|
||||||
|
popd
|
||||||
- name: Build with Gradle
|
- name: Build with Gradle
|
||||||
run: ./gradlew --no-daemon assembleDebug
|
run: ./gradlew --no-daemon assembleDebug
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
|
21
.gitmodules
vendored
21
.gitmodules
vendored
@ -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
|
||||||
|
@ -13,7 +13,7 @@ android {
|
|||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "org.purplei2p.i2pd"
|
applicationId "org.purplei2p.i2pd"
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
minSdkVersion 14
|
minSdkVersion 16
|
||||||
versionCode 24000
|
versionCode 24000
|
||||||
versionName "2.40.0"
|
versionName "2.40.0"
|
||||||
setProperty("archivesBaseName", archivesBaseName + "-" + versionName)
|
setProperty("archivesBaseName", archivesBaseName + "-" + versionName)
|
||||||
@ -28,7 +28,7 @@ android {
|
|||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
ndkBuild {
|
ndkBuild {
|
||||||
arguments "NDK_MODULE_PATH:=${rootProject.projectDir}/app/jni"
|
arguments "NDK_MODULE_PATH:=${rootProject.projectDir}/app/jni"
|
||||||
arguments "-j3"
|
arguments "-j${Runtime.getRuntime().availableProcessors()}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,49 +30,49 @@ include $(BUILD_SHARED_LIBRARY)
|
|||||||
LOCAL_PATH := $(call my-dir)
|
LOCAL_PATH := $(call my-dir)
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE := boost_system
|
LOCAL_MODULE := boost_system
|
||||||
LOCAL_SRC_FILES := $(BOOST_PATH)/boost-1_72_0/$(TARGET_ARCH_ABI)/lib/libboost_system.a
|
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_system.a
|
||||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost-1_72_0/include
|
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
|
||||||
include $(PREBUILT_STATIC_LIBRARY)
|
include $(PREBUILT_STATIC_LIBRARY)
|
||||||
|
|
||||||
LOCAL_PATH := $(call my-dir)
|
LOCAL_PATH := $(call my-dir)
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE := boost_date_time
|
LOCAL_MODULE := boost_date_time
|
||||||
LOCAL_SRC_FILES := $(BOOST_PATH)/boost-1_72_0/$(TARGET_ARCH_ABI)/lib/libboost_date_time.a
|
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_date_time.a
|
||||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost-1_72_0/include
|
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
|
||||||
include $(PREBUILT_STATIC_LIBRARY)
|
include $(PREBUILT_STATIC_LIBRARY)
|
||||||
|
|
||||||
LOCAL_PATH := $(call my-dir)
|
LOCAL_PATH := $(call my-dir)
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE := boost_filesystem
|
LOCAL_MODULE := boost_filesystem
|
||||||
LOCAL_SRC_FILES := $(BOOST_PATH)/boost-1_72_0/$(TARGET_ARCH_ABI)/lib/libboost_filesystem.a
|
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_filesystem.a
|
||||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost-1_72_0/include
|
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
|
||||||
include $(PREBUILT_STATIC_LIBRARY)
|
include $(PREBUILT_STATIC_LIBRARY)
|
||||||
|
|
||||||
LOCAL_PATH := $(call my-dir)
|
LOCAL_PATH := $(call my-dir)
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE := boost_program_options
|
LOCAL_MODULE := boost_program_options
|
||||||
LOCAL_SRC_FILES := $(BOOST_PATH)/boost-1_72_0/$(TARGET_ARCH_ABI)/lib/libboost_program_options.a
|
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_program_options.a
|
||||||
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost-1_72_0/include
|
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
|
||||||
include $(PREBUILT_STATIC_LIBRARY)
|
include $(PREBUILT_STATIC_LIBRARY)
|
||||||
|
|
||||||
LOCAL_PATH := $(call my-dir)
|
LOCAL_PATH := $(call my-dir)
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE := crypto
|
LOCAL_MODULE := crypto
|
||||||
LOCAL_SRC_FILES := $(OPENSSL_PATH)/openssl-1.1.1k-clang/$(TARGET_ARCH_ABI)/lib/libcrypto.a
|
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/libcrypto.a
|
||||||
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/openssl-1.1.1k-clang/include
|
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/include
|
||||||
include $(PREBUILT_STATIC_LIBRARY)
|
include $(PREBUILT_STATIC_LIBRARY)
|
||||||
|
|
||||||
LOCAL_PATH := $(call my-dir)
|
LOCAL_PATH := $(call my-dir)
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE := ssl
|
LOCAL_MODULE := ssl
|
||||||
LOCAL_SRC_FILES := $(OPENSSL_PATH)/openssl-1.1.1k-clang/$(TARGET_ARCH_ABI)/lib/libssl.a
|
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/libssl.a
|
||||||
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/openssl-1.1.1k-clang/include
|
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/include
|
||||||
LOCAL_STATIC_LIBRARIES := crypto
|
LOCAL_STATIC_LIBRARIES := crypto
|
||||||
include $(PREBUILT_STATIC_LIBRARY)
|
include $(PREBUILT_STATIC_LIBRARY)
|
||||||
|
|
||||||
LOCAL_PATH := $(call my-dir)
|
LOCAL_PATH := $(call my-dir)
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE := miniupnpc
|
LOCAL_MODULE := miniupnpc
|
||||||
LOCAL_SRC_FILES := $(MINIUPNP_PATH)/miniupnpc-2.1/$(TARGET_ARCH_ABI)/lib/libminiupnpc.a
|
LOCAL_SRC_FILES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/libminiupnpc.a
|
||||||
LOCAL_EXPORT_C_INCLUDES := $(MINIUPNP_PATH)/miniupnpc-2.1/include
|
LOCAL_EXPORT_C_INCLUDES := $(MINIUPNP_PATH)/miniupnpc/out/include
|
||||||
include $(PREBUILT_STATIC_LIBRARY)
|
include $(PREBUILT_STATIC_LIBRARY)
|
||||||
|
@ -9,10 +9,10 @@ ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
|
|||||||
APP_CPPFLAGS += -DANDROID_ARM7A
|
APP_CPPFLAGS += -DANDROID_ARM7A
|
||||||
endif
|
endif
|
||||||
|
|
||||||
BOOST_PATH = $(NDK_MODULE_PATH)/boost
|
|
||||||
OPENSSL_PATH = $(NDK_MODULE_PATH)/openssl
|
|
||||||
MINIUPNP_PATH = $(NDK_MODULE_PATH)/miniupnp
|
|
||||||
IFADDRS_PATH = $(NDK_MODULE_PATH)/android-ifaddrs
|
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
|
# don't change me
|
||||||
I2PD_SRC_PATH = $(NDK_MODULE_PATH)/i2pd
|
I2PD_SRC_PATH = $(NDK_MODULE_PATH)/i2pd
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 93de5720b8841569f25abe9fe498348582e002c4
|
Subproject commit ccfc74f1c9ceb35d304294d4f1ed3abff43d2e01
|
128
app/jni/build_boost.sh
Executable file
128
app/jni/build_boost.sh
Executable file
@ -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
|
89
app/jni/build_miniupnpc.sh
Executable file
89
app/jni/build_miniupnpc.sh
Executable file
@ -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
|
95
app/jni/build_openssl.sh
Executable file
95
app/jni/build_openssl.sh
Executable file
@ -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
|
@ -1 +1 @@
|
|||||||
Subproject commit 794e05ffb80651e7f60ee179792c93470edf8934
|
Subproject commit ac3cef223a4c61d6bee34527b6d4c8c6432494a7
|
Loading…
x
Reference in New Issue
Block a user