101 lines
2.5 KiB
Bash
101 lines
2.5 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -e
|
||
|
|
||
|
source script/env.sh
|
||
|
|
||
|
cd $EXTERNAL_LIBS_BUILD_ROOT/monero
|
||
|
|
||
|
orig_path=$PATH
|
||
|
base_dir=`pwd`
|
||
|
|
||
|
build_root=$EXTERNAL_LIBS_BUILD_ROOT
|
||
|
lib_root=$EXTERNAL_LIBS_ROOT
|
||
|
|
||
|
build_type=release # or debug
|
||
|
android_api=21
|
||
|
archs=(arm arm64 x86 x86_64)
|
||
|
|
||
|
for arch in ${archs[@]}; do
|
||
|
ldflags=""
|
||
|
extra_cmake_flags=""
|
||
|
case ${arch} in
|
||
|
"arm")
|
||
|
target_host=arm-linux-androideabi
|
||
|
xarch=armv7-a
|
||
|
sixtyfour=OFF
|
||
|
extra_cmake_flags="-D NO_AES=true"
|
||
|
;;
|
||
|
"arm64")
|
||
|
target_host=aarch64-linux-android
|
||
|
xarch="armv8-a"
|
||
|
sixtyfour=ON
|
||
|
;;
|
||
|
"x86")
|
||
|
target_host=i686-linux-android
|
||
|
xarch="i686"
|
||
|
sixtyfour=OFF
|
||
|
;;
|
||
|
"x86_64")
|
||
|
target_host=x86_64-linux-android
|
||
|
xarch="x86-64"
|
||
|
sixtyfour=ON
|
||
|
;;
|
||
|
*)
|
||
|
exit 16
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
TARGET_LIB_DIR=$lib_root/monero/$arch/lib
|
||
|
if [ -f "$TARGET_LIB_DIR/libwallet_api.a" ]; then
|
||
|
continue
|
||
|
fi
|
||
|
|
||
|
OUTPUT_DIR=$base_dir/build/$build_type.$arch
|
||
|
rm -rf $OUTPUT_DIR
|
||
|
mkdir -p $OUTPUT_DIR
|
||
|
cd $OUTPUT_DIR
|
||
|
|
||
|
PATH=$NDK_TOOL_DIR/$arch/$target_host/bin:$NDK_TOOL_DIR/$arch/bin:$PATH \
|
||
|
CC=clang CXX=clang++ \
|
||
|
CMAKE_LIBRARY_PATH=$lib_root/libsodium/$arch/lib \
|
||
|
cmake \
|
||
|
-D BUILD_GUI_DEPS=1 \
|
||
|
-D BUILD_TESTS=OFF \
|
||
|
-D ARCH="$xarch" \
|
||
|
-D STATIC=ON \
|
||
|
-D BUILD_64=$sixtyfour \
|
||
|
-D CMAKE_BUILD_TYPE=$build_type \
|
||
|
-D CMAKE_CXX_FLAGS="-D__ANDROID_API__=$android_api" \
|
||
|
-D ANDROID=true \
|
||
|
-D BUILD_TAG="android" \
|
||
|
-D BOOST_ROOT=$lib_root/boost/$arch \
|
||
|
-D BOOST_LIBRARYDIR=$lib_root/boost/$arch/lib \
|
||
|
-D OPENSSL_ROOT_DIR=$lib_root/openssl/$arch \
|
||
|
-D OPENSSL_INCLUDE_DIR=$lib_root/openssl/$arch \
|
||
|
-D OPENSSL_CRYPTO_LIBRARY=$lib_root/openssl/$arch/lib/libcrypto.so \
|
||
|
-D OPENSSL_SSL_LIBRARY=$lib_root/openssl/$arch/lib/libssl.so \
|
||
|
-D CMAKE_POSITION_INDEPENDENT_CODE:BOOL=true \
|
||
|
-D MONERUJO_HIDAPI=ON \
|
||
|
-D LIBSODIUM_INCLUDE_DIR=$lib_root/libsodium/$arch/include \
|
||
|
$extra_cmake_flags \
|
||
|
../..
|
||
|
|
||
|
make -j 4 wallet_api
|
||
|
|
||
|
find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \;
|
||
|
|
||
|
rm -rf $TARGET_LIB_DIR
|
||
|
mkdir -p $TARGET_LIB_DIR
|
||
|
cp $OUTPUT_DIR/lib/*.a $TARGET_LIB_DIR
|
||
|
|
||
|
TARGET_INC_DIR=$lib_root/monero/include
|
||
|
rm -rf $TARGET_INC_DIR
|
||
|
mkdir -p $TARGET_INC_DIR
|
||
|
cp -a src/wallet/api/wallet2_api.h $TARGET_INC_DIR
|
||
|
|
||
|
cd $base_dir
|
||
|
done
|
||
|
|
||
|
exit 0
|