| 1 | #!/bin/bash |
| 2 | set -x -e |
| 3 | |
| 4 | . ./config.sh |
| 5 | |
| 6 | MONERO_SRC_DIR=${WORKDIR}/monero |
| 7 | |
| 8 | git clone https://github.com/cake-tech/monero.git ${MONERO_SRC_DIR} --branch ${MONERO_BRANCH} |
| 9 | cd $MONERO_SRC_DIR |
| 10 | git submodule init |
| 11 | git submodule update |
| 12 | |
| 13 | for arch in "aarch" "aarch64" "i686" "x86_64" |
| 14 | do |
| 15 | FLAGS="" |
| 16 | PREFIX=${WORKDIR}/prefix_${arch} |
| 17 | DEST_LIB_DIR=${PREFIX}/lib/monero |
| 18 | DEST_INCLUDE_DIR=${PREFIX}/include/monero |
| 19 | export CMAKE_INCLUDE_PATH="${PREFIX}/include" |
| 20 | export CMAKE_LIBRARY_PATH="${PREFIX}/lib" |
| 21 | ANDROID_STANDALONE_TOOLCHAIN_PATH="${TOOLCHAIN_BASE_DIR}_${arch}" |
| 22 | PATH="${ANDROID_STANDALONE_TOOLCHAIN_PATH}/bin:${ORIGINAL_PATH}" |
| 23 | |
| 24 | mkdir -p $DEST_LIB_DIR |
| 25 | mkdir -p $DEST_INCLUDE_DIR |
| 26 | |
| 27 | case $arch in |
| 28 | "aarch" ) |
| 29 | CLANG=arm-linux-androideabi-clang |
| 30 | CXXLANG=arm-linux-androideabi-clang++ |
| 31 | BUILD_64=OFF |
| 32 | TAG="android-armv7" |
| 33 | ARCH="armv7-a" |
| 34 | ARCH_ABI="armeabi-v7a" |
| 35 | FLAGS="-D CMAKE_ANDROID_ARM_MODE=ON -D NO_AES=true";; |
| 36 | "aarch64" ) |
| 37 | CLANG=aarch64-linux-androideabi-clang |
| 38 | CXXLANG=aarch64-linux-androideabi-clang++ |
| 39 | BUILD_64=ON |
| 40 | TAG="android-armv8" |
| 41 | ARCH="armv8-a" |
| 42 | ARCH_ABI="arm64-v8a";; |
| 43 | "i686" ) |
| 44 | CLANG=i686-linux-androideabi-clang |
| 45 | CXXLANG=i686-linux-androideabi-clang++ |
| 46 | BUILD_64=OFF |
| 47 | TAG="android-x86" |
| 48 | ARCH="i686" |
| 49 | ARCH_ABI="x86";; |
| 50 | "x86_64" ) |
| 51 | CLANG=x86_64-linux-androideabi-clang |
| 52 | CXXLANG=x86_64-linux-androideabi-clang++ |
| 53 | BUILD_64=ON |
| 54 | TAG="android-x86_64" |
| 55 | ARCH="x86-64" |
| 56 | ARCH_ABI="x86_64";; |
| 57 | esac |
| 58 | |
| 59 | cd $MONERO_SRC_DIR |
| 60 | rm -rf ./build/release |
| 61 | mkdir -p ./build/release |
| 62 | cd ./build/release |
| 63 | CC=${CLANG} CXX=${CXXLANG} cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH=${ARCH} -D STATIC=ON -D BUILD_64=${BUILD_64} -D CMAKE_BUILD_TYPE=release -D ANDROID=true -D INSTALL_VENDORED_LIBUNBOUND=ON -D BUILD_TAG=${TAG} -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${ANDROID_STANDALONE_TOOLCHAIN_PATH}" -D CMAKE_ANDROID_ARCH_ABI=${ARCH_ABI} $FLAGS ../.. |
| 64 | |
| 65 | make wallet_api -j$THREADS |
| 66 | find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \; |
| 67 | |
| 68 | cp -r ./lib/* $DEST_LIB_DIR |
| 69 | cp ../../src/wallet/api/wallet2_api.h $DEST_INCLUDE_DIR |
| 70 | done |