feat: iOS builds
includes patches to - randomx: https://github.com/tevador/RandomX/pull/294 - randomwow: https://git.wownero.com/wownero/RandomWOW/pulls/2
This commit is contained in:
+1
Submodule external/ios-cmake added at 06465b2769
+25
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
. ./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.84.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
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
. config.sh
|
||||
|
||||
ICONV_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/libiconv"
|
||||
|
||||
rm -rf $ICONV_DIR_PATH
|
||||
mkdir -p $ICONV_DIR_PATH
|
||||
pushd $ICONV_DIR_PATH
|
||||
wget https://ftp.gnu.org/gnu/libiconv/libiconv-1.15.tar.gz -O -| tar xzv
|
||||
pushd libiconv-1.15
|
||||
|
||||
popd
|
||||
popd
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
rm -rf build
|
||||
|
||||
. ./config.sh
|
||||
./install_missing_headers.sh
|
||||
./build_openssl.sh
|
||||
./build_boost.sh
|
||||
./build_sodium.sh
|
||||
./build_zmq.sh
|
||||
./build_unbound.sh
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
. ./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.1q --targets="ios-cross-arm64" --deprecated
|
||||
|
||||
mv ${OPEN_SSL_DIR_PATH}/include/* $EXTERNAL_IOS_INCLUDE_DIR
|
||||
mv ${OPEN_SSL_DIR_PATH}/lib/libcrypto-iOS.a ${EXTERNAL_IOS_LIB_DIR}/libcrypto.a
|
||||
mv ${OPEN_SSL_DIR_PATH}/lib/libssl-iOS.a ${EXTERNAL_IOS_LIB_DIR}/libssl.a
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
. ./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
|
||||
cd $SODIUM_PATH
|
||||
git checkout 443617d7507498f7477703f0b51cb596d4539262
|
||||
./dist-build/apple-xcframework.sh
|
||||
|
||||
mv ${SODIUM_PATH}/libsodium-apple/ios/include/* $EXTERNAL_IOS_INCLUDE_DIR
|
||||
mv ${SODIUM_PATH}/libsodium-apple/ios/lib/* $EXTERNAL_IOS_LIB_DIR
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
. ./config.sh
|
||||
|
||||
UNBOUND_VERSION=release-1.16.2
|
||||
UNBOUND_HASH="cbed768b8ff9bfcf11089a5f1699b7e5707f1ea5"
|
||||
UNBOUND_URL="https://www.nlnetlabs.nl/downloads/unbound/unbound-${UNBOUND_VERSION}.tar.gz"
|
||||
UNBOUND_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/unbound-1.16.2"
|
||||
|
||||
echo "============================ Unbound ============================"
|
||||
rm -rf ${UNBOUND_DIR_PATH}
|
||||
git clone https://github.com/NLnetLabs/unbound.git -b ${UNBOUND_VERSION} ${UNBOUND_DIR_PATH}
|
||||
cd $UNBOUND_DIR_PATH
|
||||
test `git rev-parse HEAD` = ${UNBOUND_HASH} || exit 1
|
||||
|
||||
export IOS_SDK=iPhone
|
||||
export IOS_CPU=arm64
|
||||
export IOS_PREFIX=$EXTERNAL_IOS_DIR
|
||||
export AUTOTOOLS_HOST=aarch64-apple-ios
|
||||
export AUTOTOOLS_BUILD="$(./config.guess)"
|
||||
source ./contrib/ios/setenv_ios.sh
|
||||
./contrib/ios/install_tools.sh
|
||||
./contrib/ios/install_expat.sh
|
||||
./configure --build="$AUTOTOOLS_BUILD" --host="$AUTOTOOLS_HOST" --prefix="$IOS_PREFIX" --with-ssl="$IOS_PREFIX" --with-libexpat="$IOS_PREFIX"
|
||||
make
|
||||
make install
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
. ./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
|
||||
cd $ZMQ_PATH
|
||||
mkdir cmake-build
|
||||
cd cmake-build
|
||||
cmake ..
|
||||
make
|
||||
|
||||
|
||||
cp ${ZMQ_PATH}/include/* $EXTERNAL_IOS_INCLUDE_DIR
|
||||
cp ${ZMQ_PATH}/cmake-build/lib/libzmq.a $EXTERNAL_IOS_LIB_DIR
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
export IOS_SCRIPTS_DIR="$(pwd)"
|
||||
export CW_ROOT="${IOS_SCRIPTS_DIR}"
|
||||
export EXTERNAL_DIR="${CW_ROOT}/build"
|
||||
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"
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
. ./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/IOMapTypes.h ]; then
|
||||
cp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Versions/A/Headers/IOMapTypes.h ${EXTERNAL_IOS_INCLUDE_DIR}/IOKit/IOMapTypes.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
|
||||
Reference in New Issue
Block a user