mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-28 20:39:51 +00:00
Added scripts for build iOS monero dependencies
This commit is contained in:
parent
9d7e465211
commit
b81f467986
11 changed files with 233 additions and 19 deletions
9
scripts/ios/build_all.sh
Executable file
9
scripts/ios/build_all.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
. ./config.sh
|
||||
./install_missing_headers.sh
|
||||
./build_openssl.sh
|
||||
./build_boost.sh
|
||||
./build_sodium.sh
|
||||
./build_zmq.sh
|
||||
./build_monero.sh
|
23
scripts/ios/build_boost.sh
Executable file
23
scripts/ios/build_boost.sh
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/bin/sh
|
||||
|
||||
. ./config.sh
|
||||
|
||||
MIN_IOS_VERSION=10.0
|
||||
BOOST_URL="https://github.com/cake-tech/Apple-Boost-BuildScript.git"
|
||||
BOOST_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/Apple-Boost-BuildScript"
|
||||
BOOST_VERSION=1.74.0
|
||||
BOOST_LIBS="random regex graph random chrono thread filesystem system date_time locale serialization program_options"
|
||||
|
||||
echo "============================ Boost ============================"
|
||||
|
||||
echo "Cloning Apple-Boost-BuildScript from - $BOOST_URL"
|
||||
git clone -b build $BOOST_URL $BOOST_DIR_PATH
|
||||
cd $BOOST_DIR_PATH
|
||||
./boost.sh -ios \
|
||||
--min-ios-version ${MIN_IOS_VERSION} \
|
||||
--boost-libs "${BOOST_LIBS}" \
|
||||
--boost-version ${BOOST_VERSION} \
|
||||
--no-framework
|
||||
|
||||
mv ${BOOST_DIR_PATH}/build/boost/${BOOST_VERSION}/ios/release/prefix/include/* $EXTERNAL_IOS_INCLUDE_DIR
|
||||
mv ${BOOST_DIR_PATH}/build/boost/${BOOST_VERSION}/ios/release/prefix/lib/* $EXTERNAL_IOS_LIB_DIR
|
61
scripts/ios/build_monero.sh
Executable file
61
scripts/ios/build_monero.sh
Executable file
|
@ -0,0 +1,61 @@
|
|||
#!/bin/sh
|
||||
|
||||
. ./config.sh
|
||||
|
||||
MONERO_URL="https://github.com/monero-project/monero.git"
|
||||
MONERO_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/monero"
|
||||
MONERO_VERSION=tags/v0.17.2.3
|
||||
BUILD_TYPE=release
|
||||
PREFIX=${EXTERNAL_IOS_DIR}
|
||||
|
||||
echo "Cloning monero from - $MONERO_URL to - $MONERO_DIR_PATH"
|
||||
git clone $MONERO_URL $MONERO_DIR_PATH
|
||||
cd $MONERO_DIR_PATH
|
||||
git checkout $MONERO_VERSION
|
||||
git submodule update --init --force
|
||||
mkdir -p build
|
||||
cd ..
|
||||
|
||||
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
if [ -z $INSTALL_PREFIX ]; then
|
||||
INSTALL_PREFIX=${ROOT_DIR}/monero
|
||||
fi
|
||||
|
||||
for arch in "arm64" #"armv7" "arm64"
|
||||
do
|
||||
|
||||
echo "Building IOS ${arch}"
|
||||
export CMAKE_INCLUDE_PATH="${PREFIX}/include"
|
||||
export CMAKE_LIBRARY_PATH="${PREFIX}/lib"
|
||||
|
||||
case $arch in
|
||||
"armv7" )
|
||||
DEST_LIB=../../lib-armv7;;
|
||||
"arm64" )
|
||||
DEST_LIB=../../lib-armv8-a;;
|
||||
esac
|
||||
|
||||
rm -r monero/build > /dev/null
|
||||
|
||||
mkdir -p monero/build/${BUILD_TYPE}
|
||||
pushd monero/build/${BUILD_TYPE}
|
||||
cmake -D IOS=ON \
|
||||
-DARCH=${arch} \
|
||||
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
|
||||
-DSTATIC=ON \
|
||||
-DBUILD_GUI_DEPS=ON \
|
||||
-DINSTALL_VENDORED_LIBUNBOUND=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
|
||||
-DUSE_DEVICE_TREZOR=OFF \
|
||||
../..
|
||||
make -j4 && make install
|
||||
cp external/randomx/librandomx.a ${DEST_LIB}
|
||||
cp src/cryptonote_basic/libcryptonote_basic.a ${DEST_LIB}
|
||||
cp src/cryptonote_basic/libcryptonote_format_utils_basic.a ${DEST_LIB}
|
||||
popd
|
||||
|
||||
done
|
||||
|
||||
#only for arm64
|
||||
cp ${MONERO_DIR_PATH}/lib-armv8-a/* $EXTERNAL_IOS_LIB_DIR
|
||||
cp ${MONERO_DIR_PATH}/include/wallet/api/* $EXTERNAL_IOS_INCLUDE_DIR
|
16
scripts/ios/build_openssl.sh
Executable file
16
scripts/ios/build_openssl.sh
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
|
||||
. ./config.sh
|
||||
|
||||
OPEN_SSL_URL="https://github.com/x2on/OpenSSL-for-iPhone.git"
|
||||
OPEN_SSL_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/OpenSSL"
|
||||
|
||||
echo "============================ OpenSSL ============================"
|
||||
|
||||
echo "Cloning Open SSL from - $OPEN_SSL_URL"
|
||||
git clone $OPEN_SSL_URL $OPEN_SSL_DIR_PATH
|
||||
cd $OPEN_SSL_DIR_PATH
|
||||
./build-libssl.sh --version=1.1.1k --archs="x86_64 arm64 armv7s armv7" --targets="ios64-cross-arm64" --deprecated
|
||||
|
||||
mv ${OPEN_SSL_DIR_PATH}/include/* $EXTERNAL_IOS_INCLUDE_DIR
|
||||
mv ${OPEN_SSL_DIR_PATH}/lib/* $EXTERNAL_IOS_LIB_DIR
|
16
scripts/ios/build_sodium.sh
Executable file
16
scripts/ios/build_sodium.sh
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
|
||||
. ./config.sh
|
||||
|
||||
SODIUM_PATH="${EXTERNAL_IOS_SOURCE_DIR}/libsodium"
|
||||
SODIUM_URL="https://github.com/jedisct1/libsodium.git"
|
||||
|
||||
echo "============================ SODIUM ============================"
|
||||
|
||||
echo "Cloning SODIUM from - $SODIUM_URL"
|
||||
git clone $SODIUM_URL $SODIUM_PATH --branch stable
|
||||
cd $SODIUM_PATH
|
||||
./dist-build/ios.sh
|
||||
|
||||
mv ${SODIUM_PATH}/libsodium-ios/include/* $EXTERNAL_IOS_INCLUDE_DIR
|
||||
mv ${SODIUM_PATH}/libsodium-ios/lib/* $EXTERNAL_IOS_LIB_DIR
|
13
scripts/ios/build_zmq.sh
Executable file
13
scripts/ios/build_zmq.sh
Executable file
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
. ./config.sh
|
||||
|
||||
ZMQ_PATH="${EXTERNAL_IOS_SOURCE_DIR}/libzmq"
|
||||
ZMQ_URL="https://github.com/zeromq/libzmq.git"
|
||||
|
||||
echo "============================ ZMQ ============================"
|
||||
|
||||
echo "Cloning ZMQ from - $ZMQ_URL"
|
||||
git clone $ZMQ_URL $ZMQ_PATH
|
||||
|
||||
cp ${ZMQ_PATH}/include/* $EXTERNAL_IOS_INCLUDE_DIR
|
12
scripts/ios/config.sh
Executable file
12
scripts/ios/config.sh
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
|
||||
export IOS_SCRIPTS_DIR=`pwd`
|
||||
export CW_ROOT=${IOS_SCRIPTS_DIR}/../..
|
||||
export EXTERNAL_DIR=${CW_ROOT}/cw_monero/ios/External
|
||||
export EXTERNAL_IOS_DIR=${EXTERNAL_DIR}/ios
|
||||
export EXTERNAL_IOS_SOURCE_DIR=${EXTERNAL_IOS_DIR}/sources
|
||||
export EXTERNAL_IOS_LIB_DIR=${EXTERNAL_IOS_DIR}/lib
|
||||
export EXTERNAL_IOS_INCLUDE_DIR=${EXTERNAL_IOS_DIR}/include
|
||||
|
||||
mkdir -p $EXTERNAL_IOS_LIB_DIR
|
||||
mkdir -p $EXTERNAL_IOS_INCLUDE_DIR
|
63
scripts/ios/install_missing_headers.sh
Executable file
63
scripts/ios/install_missing_headers.sh
Executable file
|
@ -0,0 +1,63 @@
|
|||
#!/bin/bash
|
||||
|
||||
. ./config.sh
|
||||
|
||||
echo "Installing missing headers"
|
||||
|
||||
# vmmeter
|
||||
mkdir -p ${EXTERNAL_IOS_INCLUDE_DIR}/sys
|
||||
|
||||
if [ ! -f ${EXTERNAL_IOS_INCLUDE_DIR}/sys/vmmeter.h ]; then
|
||||
cp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/vmmeter.h ${EXTERNAL_IOS_INCLUDE_DIR}/sys/vmmeter.h
|
||||
fi
|
||||
|
||||
# netinet
|
||||
mkdir -p ${EXTERNAL_IOS_INCLUDE_DIR}/netinet
|
||||
if [ ! -f ${EXTERNAL_IOS_INCLUDE_DIR}/netinet/ip_var.h ]; then
|
||||
cp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/netinet/ip_var.h ${EXTERNAL_IOS_INCLUDE_DIR}/netinet/ip_var.h
|
||||
fi
|
||||
|
||||
if [ ! -f ${EXTERNAL_IOS_INCLUDE_DIR}/netinet/udp_var.h ]; then
|
||||
cp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/netinet/udp_var.h ${EXTERNAL_IOS_INCLUDE_DIR}/netinet/udp_var.h
|
||||
fi
|
||||
|
||||
# IOKit
|
||||
mkdir -p ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit
|
||||
if [ ! -f ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/IOTypes.h ]; then
|
||||
cp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Versions/A/Headers/IOTypes.h ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/IOTypes.h
|
||||
fi
|
||||
|
||||
if [ ! -f ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/IOKitLib.h ]; then
|
||||
cp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Versions/A/Headers/IOKitLib.h ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/IOKitLib.h
|
||||
fi
|
||||
|
||||
if [ ! -f ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/IOReturn.h ]; then
|
||||
cp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Versions/A/Headers/IOReturn.h ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/IOReturn.h
|
||||
fi
|
||||
|
||||
if [ ! -f ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/OSMessageNotification.h ]; then
|
||||
cp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Versions/A/Headers/OSMessageNotification.h ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/OSMessageNotification.h
|
||||
fi
|
||||
|
||||
# IOKit/ps
|
||||
mkdir -p ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/ps
|
||||
|
||||
if [ ! -f ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/ps/IOPSKeys.h ]; then
|
||||
cp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Versions/A/Headers/ps/IOPSKeys.h ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/ps/IOPSKeys.h
|
||||
fi
|
||||
|
||||
if [ ! -f ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/ps/IOPowerSources.h ]; then
|
||||
cp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Versions/A/Headers/ps/IOPowerSources.h ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/ps/IOPowerSources.h
|
||||
fi
|
||||
|
||||
|
||||
# libkern
|
||||
mkdir -p ${EXTERNAL_IOS_INCLUDE_DIR}/libkern
|
||||
|
||||
if [ ! -f ${EXTERNAL_IOS_INCLUDE_DIR}/libkern/OSTypes.h ]; then
|
||||
cp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/OSTypes.h ${EXTERNAL_IOS_INCLUDE_DIR}/libkern/OSTypes.h
|
||||
fi
|
||||
|
||||
if [ ! -f ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/IOKitKeys.h ]; then
|
||||
cp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Versions/A/Headers/IOKitKeys.h ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/IOKitKeys.h
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue