mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-28 12:29:51 +00:00
CW-415 add coin control for xmr (#985)
* Added CoinsInfo to monero_api_cpp * Add struct on dart * Add struct on dart * Set coins value * CW-415 Use add-coin-to-monero branch * CW-415 Add get Coin and build Monero Deps using Docker * CW-415 Fix Typo * CW-415 add debug log info * CW-415 Add preferred key Images for coin control to Monero * CW-415 Fix generation * CW-415 Skip GA Cache Externals * CW-415 Skip GA Cache Externals * CW-415 Coin Control: remove Block Explorer for Monero, Add Tx hash, save note on field exit * CW-415 Coin Control: Throw Exception when all outputs are deselected * CW-415 Coin Control: Show Frozen Balance on Dashboard * CW-415 Coin Control: Show Frozen Balance on Dashboard * CW-415 Ignore cached Monero deps in Workflow * CW-415 Fix displaying frozen Balance * Use own Translator with http 1.1.0 * CW-415 Resolve requested Changes * CW-415 Resolve requested Changes * CW-415 Resolve requested Changes * CW-415 Apply requested Changes * CW-415 Apply requested Changes * CW-415 Ensure opening of UnspentCoinsInfo Box, even for Monero.com --------- Co-authored-by: Konstantin Ullrich <konstantinullrich12@gmail.com>
This commit is contained in:
parent
3577730de8
commit
f6670c0236
56 changed files with 1584 additions and 545 deletions
1
scripts/docker/.gitignore
vendored
Normal file
1
scripts/docker/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
output/
|
26
scripts/docker/Dockerfile
Normal file
26
scripts/docker/Dockerfile
Normal file
|
@ -0,0 +1,26 @@
|
|||
FROM ubuntu:20.04
|
||||
LABEL authors="konsti"
|
||||
|
||||
ENV MONERO_BRANCH=release-v0.18.2.2-android
|
||||
RUN apt-get update && \
|
||||
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
|
||||
apt-get install -y dialog apt-utils curl unzip automake build-essential file pkg-config git python libtool libtinfo5 cmake clang
|
||||
|
||||
RUN mkdir /opt/android/
|
||||
|
||||
COPY . /opt/android/cakewallet/
|
||||
|
||||
WORKDIR /opt/android/cakewallet/
|
||||
|
||||
|
||||
RUN ./install_ndk.sh
|
||||
|
||||
RUN ./build_iconv.sh
|
||||
RUN ./build_boost.sh
|
||||
RUN ./build_openssl.sh
|
||||
RUN ./build_sodium.sh
|
||||
RUN ./build_unbound.sh
|
||||
RUN ./build_zmq.sh
|
||||
|
||||
|
||||
ENTRYPOINT ["./entrypoint.sh"]
|
1
scripts/docker/build_all.sh
Normal file
1
scripts/docker/build_all.sh
Normal file
|
@ -0,0 +1 @@
|
|||
#!/bin/sh
if [ -z "$APP_ANDROID_TYPE" ]; then
echo "Please set APP_ANDROID_TYPE"
exit 1
fi
DIR=$(dirname "$0")
case $APP_ANDROID_TYPE in
"monero.com") $DIR/build_monero_all.sh ;;
"cakewallet") $DIR/build_monero_all.sh
$DIR/build_haven.sh ;;
"haven") $DIR/build_haven_all.sh ;;
esac
|
16
scripts/docker/build_boost.sh
Normal file
16
scripts/docker/build_boost.sh
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
|
||||
. ./config.sh
|
||||
BOOST_SRC_DIR=$WORKDIR/boost_1_72_0
|
||||
BOOST_FILENAME=boost_1_72_0.tar.bz2
|
||||
BOOST_VERSION=1.72.0
|
||||
|
||||
for arch in "aarch" "aarch64" "i686" "x86_64"
|
||||
do
|
||||
|
||||
PREFIX=$WORKDIR/prefix_${arch}
|
||||
PATH="${TOOLCHAIN_BASE_DIR}_${arch}/bin:${ORIGINAL_PATH}"
|
||||
./init_boost.sh $arch $PREFIX $BOOST_SRC_DIR $BOOST_FILENAME $BOOST_VERSION
|
||||
./finish_boost.sh $arch $PREFIX $BOOST_SRC_DIR $BOOST_SRC_DIR
|
||||
|
||||
done
|
1
scripts/docker/build_haven.sh
Normal file
1
scripts/docker/build_haven.sh
Normal file
|
@ -0,0 +1 @@
|
|||
#!/bin/sh
. ./config.sh
HAVEN_VERSION=tags/v3.0.7
HAVEN_SRC_DIR=${WORKDIR}/haven
git clone https://github.com/haven-protocol-org/haven-main.git ${HAVEN_SRC_DIR}
git checkout ${HAVEN_VERSION}
cd $HAVEN_SRC_DIR
git submodule init
git submodule update
for arch in "aarch" "aarch64" "i686" "x86_64"
do
FLAGS=""
PREFIX=${WORKDIR}/prefix_${arch}
DEST_LIB_DIR=${PREFIX}/lib/haven
DEST_INCLUDE_DIR=${PREFIX}/include/haven
export CMAKE_INCLUDE_PATH="${PREFIX}/include"
export CMAKE_LIBRARY_PATH="${PREFIX}/lib"
ANDROID_STANDALONE_TOOLCHAIN_PATH="${TOOLCHAIN_BASE_DIR}_${arch}"
PATH="${ANDROID_STANDALONE_TOOLCHAIN_PATH}/bin:${ORIGINAL_PATH}"
mkdir -p $DEST_LIB_DIR
mkdir -p $DEST_INCLUDE_DIR
case $arch in
"aarch" )
CLANG=arm-linux-androideabi-clang
CXXLANG=arm-linux-androideabi-clang++
BUILD_64=OFF
TAG="android-armv7"
ARCH="armv7-a"
ARCH_ABI="armeabi-v7a"
FLAGS="-D CMAKE_ANDROID_ARM_MODE=ON -D NO_AES=true";;
"aarch64" )
CLANG=aarch64-linux-androideabi-clang
CXXLANG=aarch64-linux-androideabi-clang++
BUILD_64=ON
TAG="android-armv8"
ARCH="armv8-a"
ARCH_ABI="arm64-v8a";;
"i686" )
CLANG=i686-linux-androideabi-clang
CXXLANG=i686-linux-androideabi-clang++
BUILD_64=OFF
TAG="android-x86"
ARCH="i686"
ARCH_ABI="x86";;
"x86_64" )
CLANG=x86_64-linux-androideabi-clang
CXXLANG=x86_64-linux-androideabi-clang++
BUILD_64=ON
TAG="android-x86_64"
ARCH="x86-64"
ARCH_ABI="x86_64";;
esac
cd $HAVEN_SRC_DIR
rm -rf ./build/release
mkdir -p ./build/release
cd ./build/release
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 ../..
make wallet_api -j$THREADS
find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \;
cp -r ./lib/* $DEST_LIB_DIR
cp ../../src/wallet/api/wallet2_api.h $DEST_INCLUDE_DIR
done
|
1
scripts/docker/build_haven_all.sh
Normal file
1
scripts/docker/build_haven_all.sh
Normal file
|
@ -0,0 +1 @@
|
|||
#!/bin/bash
./build_iconv.sh
./build_boost.sh
./build_openssl.sh
./build_sodium.sh
./build_zmq.sh
./build_haven.sh
|
38
scripts/docker/build_iconv.sh
Normal file
38
scripts/docker/build_iconv.sh
Normal file
|
@ -0,0 +1,38 @@
|
|||
#!/bin/bash
|
||||
|
||||
. ./config.sh
|
||||
export ICONV_FILENAME=libiconv-1.16.tar.gz
|
||||
export ICONV_FILE_PATH=$WORKDIR/$ICONV_FILENAME
|
||||
export ICONV_SRC_DIR=$WORKDIR/libiconv-1.16
|
||||
ICONV_SHA256="e6a1b1b589654277ee790cce3734f07876ac4ccfaecbee8afa0b649cf529cc04"
|
||||
|
||||
curl http://ftp.gnu.org/pub/gnu/libiconv/$ICONV_FILENAME -o $ICONV_FILE_PATH
|
||||
echo $ICONV_SHA256 $ICONV_FILE_PATH | sha256sum -c - || exit 1
|
||||
|
||||
for arch in aarch aarch64 i686 x86_64
|
||||
do
|
||||
|
||||
PREFIX=${WORKDIR}/prefix_${arch}
|
||||
PATH="${TOOLCHAIN_BASE_DIR}_${arch}/bin:${ORIGINAL_PATH}"
|
||||
|
||||
case $arch in
|
||||
"aarch" )
|
||||
CLANG=arm-linux-androideabi-clang
|
||||
CXXLANG=arm-linux-androideabi-clang++
|
||||
HOST="arm-linux-android";;
|
||||
* )
|
||||
CLANG=${arch}-linux-android-clang
|
||||
CXXLANG=${arch}-linux-android-clang++
|
||||
HOST="${arch}-linux-android";;
|
||||
esac
|
||||
|
||||
cd $WORKDIR
|
||||
rm -rf $ICONV_SRC_DIR
|
||||
tar -xzf $ICONV_FILE_PATH -C $WORKDIR
|
||||
cd $ICONV_SRC_DIR
|
||||
CC=${CLANG} CXX=${CXXLANG} ./configure --build=x86_64-linux-gnu --host=${HOST} --prefix=${PREFIX} --disable-rpath
|
||||
make -j$THREADS
|
||||
make install
|
||||
|
||||
done
|
||||
|
69
scripts/docker/build_monero.sh
Normal file
69
scripts/docker/build_monero.sh
Normal file
|
@ -0,0 +1,69 @@
|
|||
#!/bin/bash
|
||||
|
||||
. ./config.sh
|
||||
|
||||
MONERO_SRC_DIR=${WORKDIR}/monero
|
||||
|
||||
git clone https://github.com/cake-tech/monero.git ${MONERO_SRC_DIR} --branch ${MONERO_BRANCH}
|
||||
cd $MONERO_SRC_DIR
|
||||
git submodule init
|
||||
git submodule update
|
||||
|
||||
for arch in "aarch" "aarch64" "i686" "x86_64"
|
||||
do
|
||||
FLAGS=""
|
||||
PREFIX=${WORKDIR}/prefix_${arch}
|
||||
DEST_LIB_DIR=${PREFIX}/lib/monero
|
||||
DEST_INCLUDE_DIR=${PREFIX}/include/monero
|
||||
export CMAKE_INCLUDE_PATH="${PREFIX}/include"
|
||||
export CMAKE_LIBRARY_PATH="${PREFIX}/lib"
|
||||
ANDROID_STANDALONE_TOOLCHAIN_PATH="${TOOLCHAIN_BASE_DIR}_${arch}"
|
||||
PATH="${ANDROID_STANDALONE_TOOLCHAIN_PATH}/bin:${ORIGINAL_PATH}"
|
||||
|
||||
mkdir -p $DEST_LIB_DIR
|
||||
mkdir -p $DEST_INCLUDE_DIR
|
||||
|
||||
case $arch in
|
||||
"aarch" )
|
||||
CLANG=arm-linux-androideabi-clang
|
||||
CXXLANG=arm-linux-androideabi-clang++
|
||||
BUILD_64=OFF
|
||||
TAG="android-armv7"
|
||||
ARCH="armv7-a"
|
||||
ARCH_ABI="armeabi-v7a"
|
||||
FLAGS="-D CMAKE_ANDROID_ARM_MODE=ON -D NO_AES=true";;
|
||||
"aarch64" )
|
||||
CLANG=aarch64-linux-androideabi-clang
|
||||
CXXLANG=aarch64-linux-androideabi-clang++
|
||||
BUILD_64=ON
|
||||
TAG="android-armv8"
|
||||
ARCH="armv8-a"
|
||||
ARCH_ABI="arm64-v8a";;
|
||||
"i686" )
|
||||
CLANG=i686-linux-androideabi-clang
|
||||
CXXLANG=i686-linux-androideabi-clang++
|
||||
BUILD_64=OFF
|
||||
TAG="android-x86"
|
||||
ARCH="i686"
|
||||
ARCH_ABI="x86";;
|
||||
"x86_64" )
|
||||
CLANG=x86_64-linux-androideabi-clang
|
||||
CXXLANG=x86_64-linux-androideabi-clang++
|
||||
BUILD_64=ON
|
||||
TAG="android-x86_64"
|
||||
ARCH="x86-64"
|
||||
ARCH_ABI="x86_64";;
|
||||
esac
|
||||
|
||||
cd $MONERO_SRC_DIR
|
||||
rm -rf ./build/release
|
||||
mkdir -p ./build/release
|
||||
cd ./build/release
|
||||
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 ../..
|
||||
|
||||
make wallet_api -j$THREADS
|
||||
find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \;
|
||||
|
||||
cp -r ./lib/* $DEST_LIB_DIR
|
||||
cp ../../src/wallet/api/wallet2_api.h $DEST_INCLUDE_DIR
|
||||
done
|
55
scripts/docker/build_openssl.sh
Normal file
55
scripts/docker/build_openssl.sh
Normal file
|
@ -0,0 +1,55 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
. ./config.sh
|
||||
OPENSSL_FILENAME=openssl-1.1.1q.tar.gz
|
||||
OPENSSL_FILE_PATH=$WORKDIR/$OPENSSL_FILENAME
|
||||
OPENSSL_SRC_DIR=$WORKDIR/openssl-1.1.1q
|
||||
OPENSSL_SHA256="d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca"
|
||||
ZLIB_DIR=$WORKDIR/zlib
|
||||
ZLIB_TAG=v1.2.11
|
||||
ZLIB_COMMIT_HASH="cacf7f1d4e3d44d871b605da3b647f07d718623f"
|
||||
|
||||
rm -rf $ZLIB_DIR
|
||||
git clone -b $ZLIB_TAG --depth 1 https://github.com/madler/zlib $ZLIB_DIR
|
||||
cd $ZLIB_DIR
|
||||
git reset --hard $ZLIB_COMMIT_HASH
|
||||
CC=clang CXX=clang++ ./configure --static
|
||||
make
|
||||
|
||||
curl https://www.openssl.org/source/$OPENSSL_FILENAME -o $OPENSSL_FILE_PATH
|
||||
echo $OPENSSL_SHA256 $OPENSSL_FILE_PATH | sha256sum -c - || exit 1
|
||||
|
||||
for arch in "aarch" "aarch64" "i686" "x86_64"
|
||||
do
|
||||
PREFIX=$WORKDIR/prefix_${arch}
|
||||
TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64
|
||||
PATH="${TOOLCHAIN}/bin:${ORIGINAL_PATH}"
|
||||
|
||||
case $arch in
|
||||
"aarch") X_ARCH="android-arm";;
|
||||
"aarch64") X_ARCH="android-arm64";;
|
||||
"i686") X_ARCH="android-x86";;
|
||||
"x86_64") X_ARCH="android-x86_64";;
|
||||
*) X_ARCH="android-${arch}";;
|
||||
esac
|
||||
|
||||
cd $WORKDIR
|
||||
rm -rf $OPENSSL_SRC_DIR
|
||||
tar -xzf $OPENSSL_FILE_PATH -C $WORKDIR
|
||||
cd $OPENSSL_SRC_DIR
|
||||
|
||||
CC=clang ANDROID_NDK=$TOOLCHAIN \
|
||||
./Configure ${X_ARCH} \
|
||||
no-shared no-tests \
|
||||
--with-zlib-include=${PREFIX}/include \
|
||||
--with-zlib-lib=${PREFIX}/lib \
|
||||
--prefix=${PREFIX} \
|
||||
--openssldir=${PREFIX} \
|
||||
-D__ANDROID_API__=$API
|
||||
make -j$THREADS
|
||||
make -j$THREADS install_sw
|
||||
|
||||
done
|
||||
|
30
scripts/docker/build_sodium.sh
Normal file
30
scripts/docker/build_sodium.sh
Normal file
|
@ -0,0 +1,30 @@
|
|||
#!/bin/bash
|
||||
|
||||
. ./config.sh
|
||||
SODIUM_SRC_DIR=${WORKDIR}/libsodium
|
||||
SODIUM_BRANCH=1.0.16
|
||||
|
||||
for arch in "aarch" "aarch64" "i686" "x86_64"
|
||||
do
|
||||
|
||||
PREFIX=${WORKDIR}/prefix_${arch}
|
||||
PATH="${TOOLCHAIN_BASE_DIR}_${arch}/bin:${ORIGINAL_PATH}"
|
||||
|
||||
case $arch in
|
||||
"aarch" ) TARGET="arm";;
|
||||
"i686" ) TARGET="x86";;
|
||||
* ) TARGET="${arch}";;
|
||||
esac
|
||||
|
||||
HOST="${TARGET}-linux-android"
|
||||
cd $WORKDIR
|
||||
rm -rf $SODIUM_SRC_DIR
|
||||
git clone https://github.com/jedisct1/libsodium.git $SODIUM_SRC_DIR -b $SODIUM_BRANCH
|
||||
cd $SODIUM_SRC_DIR
|
||||
./autogen.sh
|
||||
CC=clang CXX=clang++ ./configure --prefix=${PREFIX} --host=${HOST} --enable-static --disable-shared
|
||||
make -j$THREADS
|
||||
make install
|
||||
|
||||
done
|
||||
|
65
scripts/docker/build_unbound.sh
Normal file
65
scripts/docker/build_unbound.sh
Normal file
|
@ -0,0 +1,65 @@
|
|||
#!/bin/bash
|
||||
|
||||
. ./config.sh
|
||||
|
||||
EXPAT_VERSION=R_2_4_8
|
||||
EXPAT_HASH="3bab6c09bbe8bf42d84b81563ddbcf4cca4be838"
|
||||
EXPAT_SRC_DIR=$WORKDIR/libexpat
|
||||
|
||||
for arch in "aarch" "aarch64" "i686" "x86_64"
|
||||
do
|
||||
PREFIX=$WORKDIR/prefix_${arch}
|
||||
TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64
|
||||
PATH="${TOOLCHAIN_BASE_DIR}_${arch}/bin:${ORIGINAL_PATH}"
|
||||
|
||||
cd $WORKDIR
|
||||
rm -rf $EXPAT_SRC_DIR
|
||||
git clone https://github.com/libexpat/libexpat.git -b ${EXPAT_VERSION} ${EXPAT_SRC_DIR}
|
||||
cd $EXPAT_SRC_DIR
|
||||
test `git rev-parse HEAD` = ${EXPAT_HASH} || exit 1
|
||||
cd $EXPAT_SRC_DIR/expat
|
||||
|
||||
case $arch in
|
||||
"aarch") HOST="arm-linux-androideabi";;
|
||||
"i686") HOST="x86-linux-android";;
|
||||
*) HOST="${arch}-linux-android";;
|
||||
esac
|
||||
|
||||
./buildconf.sh
|
||||
CC=clang CXX=clang++ ./configure --enable-static --disable-shared --prefix=${PREFIX} --host=${HOST}
|
||||
make -j$THREADS
|
||||
make -j$THREADS install
|
||||
done
|
||||
|
||||
UNBOUND_VERSION=release-1.16.2
|
||||
UNBOUND_HASH="cbed768b8ff9bfcf11089a5f1699b7e5707f1ea5"
|
||||
UNBOUND_SRC_DIR=$WORKDIR/unbound-1.16.2
|
||||
|
||||
for arch in "aarch" "aarch64" "i686" "x86_64"
|
||||
do
|
||||
PREFIX=$WORKDIR/prefix_${arch}
|
||||
TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64
|
||||
|
||||
case $arch in
|
||||
"aarch") TOOLCHAIN_BIN_PATH=${TOOLCHAIN_BASE_DIR}_${arch}/arm-linux-androideabi/bin;;
|
||||
*) TOOLCHAIN_BIN_PATH=${TOOLCHAIN_BASE_DIR}_${arch}/${arch}-linux-android/bin;;
|
||||
esac
|
||||
|
||||
PATH="${TOOLCHAIN_BIN_PATH}:${TOOLCHAIN_BASE_DIR}_${arch}/bin:${ORIGINAL_PATH}"
|
||||
echo $PATH
|
||||
cd $WORKDIR
|
||||
rm -rf $UNBOUND_SRC_DIR
|
||||
git clone https://github.com/NLnetLabs/unbound.git -b ${UNBOUND_VERSION} ${UNBOUND_SRC_DIR}
|
||||
cd $UNBOUND_SRC_DIR
|
||||
test `git rev-parse HEAD` = ${UNBOUND_HASH} || exit 1
|
||||
|
||||
case $arch in
|
||||
"aarch") HOST="arm-linux-androideabi";;
|
||||
"i686") HOST="x86-linux-android";;
|
||||
*) HOST="${arch}-linux-android";;
|
||||
esac
|
||||
|
||||
CC=clang CXX=clang++ ./configure --prefix=${PREFIX} --host=${HOST} --enable-static --disable-shared --disable-flto --with-ssl=${PREFIX} --with-libexpat=${PREFIX}
|
||||
make -j$THREADS
|
||||
make -j$THREADS install
|
||||
done
|
32
scripts/docker/build_zmq.sh
Normal file
32
scripts/docker/build_zmq.sh
Normal file
|
@ -0,0 +1,32 @@
|
|||
#!/bin/bash
|
||||
|
||||
. ./config.sh
|
||||
ZMQ_SRC_DIR=$WORKDIR/libzmq
|
||||
ZMQ_BRANCH=v4.3.3
|
||||
ZMQ_COMMIT_HASH=04f5bbedee58c538934374dc45182d8fc5926fa3
|
||||
|
||||
for arch in "aarch" "aarch64" "i686" "x86_64"
|
||||
do
|
||||
|
||||
PREFIX=$WORKDIR/prefix_${arch}
|
||||
PATH="${TOOLCHAIN_BASE_DIR}_${arch}/bin:${ORIGINAL_PATH}"
|
||||
|
||||
case $arch in
|
||||
"aarch" ) TARGET="arm";;
|
||||
"i686" ) TARGET="x86";;
|
||||
* ) TARGET="${arch}";;
|
||||
esac
|
||||
|
||||
|
||||
HOST="${TARGET}-linux-android"
|
||||
cd $WORKDIR
|
||||
rm -rf $ZMQ_SRC_DIR
|
||||
git clone https://github.com/zeromq/libzmq.git ${ZMQ_SRC_DIR} -b ${ZMQ_BRANCH}
|
||||
cd $ZMQ_SRC_DIR
|
||||
git checkout ${ZMQ_COMMIT_HASH}
|
||||
./autogen.sh
|
||||
CC=clang CXX=clang++ ./configure --prefix=${PREFIX} --host=${HOST} --enable-static --disable-shared
|
||||
make -j$THREADS
|
||||
make install
|
||||
|
||||
done
|
11
scripts/docker/config.sh
Normal file
11
scripts/docker/config.sh
Normal file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
export API=21
|
||||
export WORKDIR=/opt/android
|
||||
export ANDROID_NDK_ZIP=${WORKDIR}/android-ndk-r17c.zip
|
||||
export ANDROID_NDK_ROOT=${WORKDIR}/android-ndk-r17c
|
||||
export ANDROID_NDK_HOME=$ANDROID_NDK_ROOT
|
||||
export TOOLCHAIN_DIR="${WORKDIR}/toolchain"
|
||||
export TOOLCHAIN_BASE_DIR=$TOOLCHAIN_DIR
|
||||
export ORIGINAL_PATH=$PATH
|
||||
export THREADS=4
|
45
scripts/docker/copy_haven_deps.sh
Normal file
45
scripts/docker/copy_haven_deps.sh
Normal file
|
@ -0,0 +1,45 @@
|
|||
#!/bin/bash
|
||||
|
||||
WORKDIR=/opt/android
|
||||
CW_DIR=${WORKDIR}/cake_wallet
|
||||
CW_EXRTERNAL_DIR=${CW_DIR}/cw_shared_external/ios/External/android
|
||||
CW_HAVEN_EXTERNAL_DIR=${CW_DIR}/cw_haven/ios/External/android
|
||||
CW_MONERO_EXTERNAL_DIR=${CW_DIR}/cw_monero/ios/External/android
|
||||
for arch in "aarch" "aarch64" "i686" "x86_64"
|
||||
do
|
||||
|
||||
PREFIX=${WORKDIR}/prefix_${arch}
|
||||
ABI=""
|
||||
|
||||
case $arch in
|
||||
"aarch" )
|
||||
ABI="armeabi-v7a";;
|
||||
"aarch64" )
|
||||
ABI="arm64-v8a";;
|
||||
"i686" )
|
||||
ABI="x86";;
|
||||
"x86_64" )
|
||||
ABI="x86_64";;
|
||||
esac
|
||||
|
||||
LIB_DIR=${CW_EXRTERNAL_DIR}/${ABI}/lib
|
||||
INCLUDE_DIR=${CW_EXRTERNAL_DIR}/${ABI}/include
|
||||
LIBANBOUND_PATH=${PREFIX}/lib/libunbound.a
|
||||
|
||||
mkdir -p $LIB_DIR
|
||||
mkdir -p $INCLUDE_DIR
|
||||
|
||||
cp -r ${PREFIX}/lib/* $LIB_DIR
|
||||
cp -r ${PREFIX}/include/* $INCLUDE_DIR
|
||||
|
||||
if [ -f "$LIBANBOUND_PATH" ]; then
|
||||
cp $LIBANBOUND_PATH ${LIB_DIR}/monero
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
mkdir -p ${CW_HAVEN_EXTERNAL_DIR}/include
|
||||
mkdir -p ${CW_MONERO_EXTERNAL_DIR}/include
|
||||
|
||||
cp $CW_EXRTERNAL_DIR/x86/include/monero/wallet2_api.h ${CW_MONERO_EXTERNAL_DIR}/include
|
||||
cp $CW_EXRTERNAL_DIR/x86/include/haven/wallet2_api.h ${CW_HAVEN_EXTERNAL_DIR}/include
|
37
scripts/docker/copy_monero_deps.sh
Normal file
37
scripts/docker/copy_monero_deps.sh
Normal file
|
@ -0,0 +1,37 @@
|
|||
#!/bin/bash
|
||||
|
||||
WORKDIR=/opt/android
|
||||
CW_EXRTERNAL_DIR=${WORKDIR}/output/android
|
||||
|
||||
for arch in "aarch" "aarch64" "i686" "x86_64"
|
||||
do
|
||||
|
||||
PREFIX=${WORKDIR}/prefix_${arch}
|
||||
ABI=""
|
||||
|
||||
case $arch in
|
||||
"aarch" )
|
||||
ABI="armeabi-v7a";;
|
||||
"aarch64" )
|
||||
ABI="arm64-v8a";;
|
||||
"i686" )
|
||||
ABI="x86";;
|
||||
"x86_64" )
|
||||
ABI="x86_64";;
|
||||
esac
|
||||
|
||||
LIB_DIR=${CW_EXRTERNAL_DIR}/${ABI}/lib
|
||||
INCLUDE_DIR=${CW_EXRTERNAL_DIR}/${ABI}/include
|
||||
LIBANBOUND_PATH=${PREFIX}/lib/libunbound.a
|
||||
|
||||
mkdir -p $LIB_DIR
|
||||
mkdir -p $INCLUDE_DIR
|
||||
|
||||
cp -r ${PREFIX}/lib/* $LIB_DIR
|
||||
cp -r ${PREFIX}/include/* $INCLUDE_DIR
|
||||
|
||||
if [ -f "$LIBANBOUND_PATH" ]; then
|
||||
cp $LIBANBOUND_PATH ${LIB_DIR}/monero
|
||||
fi
|
||||
|
||||
done
|
9
scripts/docker/docker-compose.yml
Normal file
9
scripts/docker/docker-compose.yml
Normal file
|
@ -0,0 +1,9 @@
|
|||
version: '3.6'
|
||||
|
||||
services:
|
||||
build_deps:
|
||||
image: build_monero_deps
|
||||
environment:
|
||||
MONERO_BRANCH: release-v0.18.2.2-android
|
||||
volumes:
|
||||
- ./output:/opt/android/output
|
4
scripts/docker/entrypoint.sh
Normal file
4
scripts/docker/entrypoint.sh
Normal file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
./build_monero.sh
|
||||
./copy_monero_deps.sh
|
9
scripts/docker/finish_boost.sh
Normal file
9
scripts/docker/finish_boost.sh
Normal file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
ARCH=$1
|
||||
PREFIX=$2
|
||||
BOOST_SRC_DIR=$3
|
||||
|
||||
cd $BOOST_SRC_DIR
|
||||
|
||||
./b2 --build-type=minimal link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread --with-locale --build-dir=android --stagedir=android toolset=clang threading=multi threadapi=pthread target-os=android -sICONV_PATH=${PREFIX} -j$THREADS install
|
22
scripts/docker/init_boost.sh
Normal file
22
scripts/docker/init_boost.sh
Normal file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
|
||||
ARCH=$1
|
||||
PREFIX=$2
|
||||
BOOST_SRC_DIR=$3
|
||||
BOOST_FILENAME=$4
|
||||
BOOST_VERSION=$5
|
||||
BOOST_FILE_PATH=$WORKDIR/$BOOST_FILENAME
|
||||
BOOST_SHA256="59c9b274bc451cf91a9ba1dd2c7fdcaf5d60b1b3aa83f2c9fa143417cc660722"
|
||||
|
||||
if [ ! -e "$BOOST_FILE_PATH" ]; then
|
||||
curl -L http://downloads.sourceforge.net/project/boost/boost/${BOOST_VERSION}/${BOOST_FILENAME} > $BOOST_FILE_PATH
|
||||
fi
|
||||
|
||||
echo $BOOST_SHA256 $BOOST_FILE_PATH | sha256sum -c - || exit 1
|
||||
|
||||
cd $WORKDIR
|
||||
rm -rf $BOOST_SRC_DIR
|
||||
rm -rf $PREFIX/include/boost
|
||||
tar -xvf $BOOST_FILE_PATH -C $WORKDIR
|
||||
cd $BOOST_SRC_DIR
|
||||
./bootstrap.sh --prefix=${PREFIX}
|
18
scripts/docker/install_ndk.sh
Normal file
18
scripts/docker/install_ndk.sh
Normal file
|
@ -0,0 +1,18 @@
|
|||
#!/bin/bash
|
||||
|
||||
. ./config.sh
|
||||
TOOLCHAIN_DIR=${WORKDIR}/toolchain
|
||||
TOOLCHAIN_A32_DIR=${TOOLCHAIN_DIR}_aarch
|
||||
TOOLCHAIN_A64_DIR=${TOOLCHAIN_DIR}_aarch64
|
||||
TOOLCHAIN_x86_DIR=${TOOLCHAIN_DIR}_i686
|
||||
TOOLCHAIN_x86_64_DIR=${TOOLCHAIN_DIR}_x86_64
|
||||
ANDROID_NDK_SHA256="3f541adbd0330a9205ba12697f6d04ec90752c53d6b622101a2a8a856e816589"
|
||||
|
||||
curl https://dl.google.com/android/repository/android-ndk-r17c-linux-x86_64.zip -o ${ANDROID_NDK_ZIP}
|
||||
echo $ANDROID_NDK_SHA256 $ANDROID_NDK_ZIP | sha256sum -c || exit 1
|
||||
unzip $ANDROID_NDK_ZIP -d $WORKDIR
|
||||
|
||||
${ANDROID_NDK_ROOT}/build/tools/make_standalone_toolchain.py --arch arm64 --api $API --install-dir ${TOOLCHAIN_A64_DIR} --stl=libc++
|
||||
${ANDROID_NDK_ROOT}/build/tools/make_standalone_toolchain.py --arch arm --api $API --install-dir ${TOOLCHAIN_A32_DIR} --stl=libc++
|
||||
${ANDROID_NDK_ROOT}/build/tools/make_standalone_toolchain.py --arch x86 --api $API --install-dir ${TOOLCHAIN_x86_DIR} --stl=libc++
|
||||
${ANDROID_NDK_ROOT}/build/tools/make_standalone_toolchain.py --arch x86_64 --api $API --install-dir ${TOOLCHAIN_x86_64_DIR} --stl=libc++
|
|
@ -59,4 +59,4 @@ cp -r ./lib/* $DEST_LIB_DIR
|
|||
cp ../../src/wallet/api/wallet2_api.h $DEST_INCLUDE_DIR
|
||||
popd
|
||||
|
||||
done
|
||||
done
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue