From 2a38bf29618a8ce163f9d6f83b7ae86924752e32 Mon Sep 17 00:00:00 2001 From: cyan Date: Wed, 4 Dec 2024 10:22:48 -0500 Subject: cleanup patches (and other stuff) (#79) * cleanup patches * fix polyseed patch * Fix iOS builds * fix polyseed dependencies * fix polyseed patch for macOS * update ledger patch * update wownero patches and version * update checksums * wip" * update gitmodules * update boost build script * update build_single.sh * vix verbosey_copy * fix __clear_cache bug on wownero * update randomwow * migrate build system * fix cross compilation issues * some more build issue * update polyseed * cleanup cmakelists * fix toolchain.cmake.in * add ssp * another attempt at building windows on CI * fix package name * migrate mirror to my own hosting * change download mirror priority (fallback first) * link ssp in monero module as well by using CMAKE_{C,CXX}_FLAGS * fix android builds * update polyseed source * 13 -> trixie * fix package name conflicts, update runner to sid * update boost to 1_84_0, disable patch that's no longer needed * switch to ubuntu:24.04 * add POLYSEED_STATIC to toolchain.cmake.in in order to properly link * drop patches * fixes to darwin * link missing wowner-seed library * a litte bit more of experiments * build locale only on windows * update iconv * update definitions * update ci builds * update my progress * ios fix, update depends, ci * multithread build system * fix android, mingw and linux build issues * remove dependency check * update Dockerfile to include pigz * show a message when pigz is missing * fix devcontainer mingw setup (missing ENV) * update android build runner * sailfishos dropped (you better go behave yourself and run actual linux programs) * fiz pigz issues * install llvm-ranlib for android * fix iOS build issues * fix dummy ledger patch * fix macos and darwin * fix macos ci * fix macos build command * install autoconf * add automake * add libtool * macos fixes, wownero fixes, idk what else, please help me * fix wownero iOS build * Cleanup patches * add try-catch into monero code * fix error handling * update checksums --- external/ios/build_boost.sh | 32 ------- external/ios/build_monero_all.sh | 18 ---- external/ios/build_openssl.sh | 28 ------ external/ios/build_sodium.sh | 28 ------ external/ios/build_unbound.sh | 38 --------- external/ios/build_wownero_seed.sh | 48 ----------- external/ios/build_zmq.sh | 32 ------- external/ios/config.sh | 13 --- external/ios/install_missing_headers.sh | 69 --------------- external/ios/libsodium_apple-ios.sh | 147 -------------------------------- 10 files changed, 453 deletions(-) delete mode 100755 external/ios/build_boost.sh delete mode 100755 external/ios/build_monero_all.sh delete mode 100755 external/ios/build_openssl.sh delete mode 100755 external/ios/build_sodium.sh delete mode 100755 external/ios/build_unbound.sh delete mode 100755 external/ios/build_wownero_seed.sh delete mode 100755 external/ios/build_zmq.sh delete mode 100755 external/ios/config.sh delete mode 100755 external/ios/install_missing_headers.sh delete mode 100755 external/ios/libsodium_apple-ios.sh (limited to 'external/ios') diff --git a/external/ios/build_boost.sh b/external/ios/build_boost.sh deleted file mode 100755 index 805fbd0..0000000 --- a/external/ios/build_boost.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -set -e - -. ./config.sh - -MIN_IOS_VERSION=10.0 -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 ============================" - -# Check if the directory already exists. -if [ -d "$BOOST_DIR_PATH" ]; then - echo "Boost directory already exists." -else - echo "Cloning Boost from $BOOST_URL" - mkdir -p "$BOOST_DIR_PATH" || true - rm -rf "$BOOST_DIR_PATH" || true - cp -r "${MONEROC_DIR}/external/Apple-Boost-BuildScript" "$BOOST_DIR_PATH" -fi -cd "$BOOST_DIR_PATH" - -./boost.sh -ios \ - --min-ios-version ${MIN_IOS_VERSION} \ - --boost-libs "${BOOST_LIBS}" \ - --boost-version ${BOOST_VERSION} \ - --no-framework - -cp -r "${BOOST_DIR_PATH}/build/boost/${BOOST_VERSION}"/ios/release/prefix/include/boost "$EXTERNAL_IOS_INCLUDE_DIR/boost" -cp -r "${BOOST_DIR_PATH}/build/boost/${BOOST_VERSION}"/ios/release/prefix/lib/* "$EXTERNAL_IOS_LIB_DIR/" \ No newline at end of file diff --git a/external/ios/build_monero_all.sh b/external/ios/build_monero_all.sh deleted file mode 100755 index 4957e69..0000000 --- a/external/ios/build_monero_all.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -set -e - -rm -rf build - -. ./config.sh - -rm -rf "$EXTERNAL_IOS_LIB_DIR" -rm -rf "$EXTERNAL_IOS_INCLUDE_DIR" - -./install_missing_headers.sh -./build_openssl.sh -./build_boost.sh -./build_sodium.sh -./build_zmq.sh -./build_unbound.sh - diff --git a/external/ios/build_openssl.sh b/external/ios/build_openssl.sh deleted file mode 100755 index 4bf6aa2..0000000 --- a/external/ios/build_openssl.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -set -e - -. ./config.sh - -OPEN_SSL_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/OpenSSL" - -echo "============================ OpenSSL ============================" - -echo "Cloning Open SSL from - $OPEN_SSL_URL" - -# Check if the directory already exists. -if [ -d "$OPEN_SSL_DIR_PATH" ]; then - echo "OpenSSL directory already exists." -else - mkdir -p "$OPEN_SSL_DIR_PATH" || true - rm -rf "$OPEN_SSL_DIR_PATH" - cp -r "${MONEROC_DIR}/external/OpenSSL-for-iPhone" "$OPEN_SSL_DIR_PATH" -fi -cd "$OPEN_SSL_DIR_PATH" - -./build-libssl.sh --version=1.1.1q --targets="ios-cross-arm64" --deprecated - - -cp -r "${OPEN_SSL_DIR_PATH}"/include/* "$EXTERNAL_IOS_INCLUDE_DIR/" -cp "${OPEN_SSL_DIR_PATH}"/lib/libcrypto-iOS.a "${EXTERNAL_IOS_LIB_DIR}"/libcrypto.a -cp "${OPEN_SSL_DIR_PATH}"/lib/libssl-iOS.a "${EXTERNAL_IOS_LIB_DIR}"/libssl.a \ No newline at end of file diff --git a/external/ios/build_sodium.sh b/external/ios/build_sodium.sh deleted file mode 100755 index d8f8777..0000000 --- a/external/ios/build_sodium.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/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" - -# Check if the directory already exists. -if [ -d "$SODIUM_PATH" ]; then - echo "Sodium directory already exists." -else - echo "Cloning Sodium from $SODIUM_URL" - mkdir -p "$SODIUM_PATH" || true - rm -rf "$SODIUM_PATH" - cp -r "${MONEROC_DIR}/external/libsodium" "$SODIUM_PATH" -fi - -cd "$SODIUM_PATH" -../../../../libsodium_apple-ios.sh - -cp -r "${SODIUM_PATH}"/libsodium-apple/ios/include/* "$EXTERNAL_IOS_INCLUDE_DIR/" -cp -r "${SODIUM_PATH}"/libsodium-apple/ios/lib/* "$EXTERNAL_IOS_LIB_DIR/" \ No newline at end of file diff --git a/external/ios/build_unbound.sh b/external/ios/build_unbound.sh deleted file mode 100755 index 14efef8..0000000 --- a/external/ios/build_unbound.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/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_GIT_URL="https://github.com/NLnetLabs/unbound.git" -UNBOUND_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/unbound-1.16.2" - -echo "============================ Unbound ============================" -rm -rf ${UNBOUND_DIR_PATH} - -# Check if the directory already exists. -if [ -d "$UNBOUND_DIR_PATH" ]; then - echo "Unbound directory already exists." -else - echo "Cloning Unbound from $Unbound_URL" - mkdir -p ${UNBOUND_DIR_PATH} || true - rm -rf ${UNBOUND_DIR_PATH} - cp -r "${MONEROC_DIR}/external/unbound" ${UNBOUND_DIR_PATH} -fi - -cd $UNBOUND_DIR_PATH - -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 -j$(sysctl -n hw.logicalcpu) -make install \ No newline at end of file diff --git a/external/ios/build_wownero_seed.sh b/external/ios/build_wownero_seed.sh deleted file mode 100755 index 7672db5..0000000 --- a/external/ios/build_wownero_seed.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh - -set -x -e - -. ./config.sh - -SEED_VERSION=0.3.0 -SEED_SRC_DIR="${EXTERNAL_IOS_SOURCE_DIR}/seed" - -rm -rf "$SEED_SRC_DIR" > /dev/null - -echo "[*] cloning $SEED_URL" -mkdir -p ${SEED_SRC_DIR} || true -rm -rf ${SEED_SRC_DIR} -cp -r "${MONEROC_DIR}/external/wownero-seed" ${SEED_SRC_DIR} -cd $SEED_SRC_DIR - -patch -p1 < ../../../../../wownero-seed-0001-fix-duplicate-symbol-error.patch - -BUILD_TYPE=release -PREFIX=${EXTERNAL_IOS_DIR} -DEST_LIB_DIR=${EXTERNAL_IOS_LIB_DIR}/wownero-seed -DEST_INCLUDE_DIR=${EXTERNAL_IOS_INCLUDE_DIR}/wownero-seed - -ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -if [ -z $INSTALL_PREFIX ]; then - INSTALL_PREFIX=${ROOT_DIR}/wownero-seed -fi - -for arch in "arm64" #"armv7" "arm64" -do - -echo "Building wownero-seed 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 - -cmake -Bbuild -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DCMAKE_SYSTEM_NAME="iOS" -DCMAKE_OSX_ARCHITECTURES="${arch}" . -make -Cbuild -j$(nproc) -make -Cbuild install - -done \ No newline at end of file diff --git a/external/ios/build_zmq.sh b/external/ios/build_zmq.sh deleted file mode 100755 index 63306b2..0000000 --- a/external/ios/build_zmq.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -set -e - -. ./config.sh - -ZMQ_PATH="${EXTERNAL_IOS_SOURCE_DIR}/libzmq" - -echo "============================ ZMQ ============================" - -echo "Cloning ZMQ from - $ZMQ_URL" - -# Check if the directory already exists. -if [ -d "$ZMQ_PATH" ]; then - echo "ZeroMQ directory already exists." -else - echo "Cloning ZeroMQ from $ZeroMQ_URL" - mkdir -p $ZMQ_PATH || true - rm -rf $ZMQ_PATH - cp -r "${MONEROC_DIR}/external/libzmq" $ZMQ_PATH -fi - -cd $ZMQ_PATH - -mkdir -p cmake-build -cd cmake-build -cmake .. -make -j$(sysctl -n hw.logicalcpu) - - -cp ${ZMQ_PATH}/include/* $EXTERNAL_IOS_INCLUDE_DIR -cp ${ZMQ_PATH}/cmake-build/lib/libzmq.a $EXTERNAL_IOS_LIB_DIR \ No newline at end of file diff --git a/external/ios/config.sh b/external/ios/config.sh deleted file mode 100755 index e65c5a3..0000000 --- a/external/ios/config.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -export IOS_SCRIPTS_DIR="$(pwd)" -export MONEROC_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" \ No newline at end of file diff --git a/external/ios/install_missing_headers.sh b/external/ios/install_missing_headers.sh deleted file mode 100755 index 5ae794a..0000000 --- a/external/ios/install_missing_headers.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/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 diff --git a/external/ios/libsodium_apple-ios.sh b/external/ios/libsodium_apple-ios.sh deleted file mode 100755 index 963ba32..0000000 --- a/external/ios/libsodium_apple-ios.sh +++ /dev/null @@ -1,147 +0,0 @@ -#! /bin/sh - -export PREFIX="$(pwd)/libsodium-apple" -export MACOS_ARM64_PREFIX="${PREFIX}/tmp/macos-arm64" -export MACOS_X86_64_PREFIX="${PREFIX}/tmp/macos-x86_64" -export IOS32_PREFIX="${PREFIX}/tmp/ios32" -export IOS32s_PREFIX="${PREFIX}/tmp/ios32s" -export IOS64_PREFIX="${PREFIX}/tmp/ios64" -export IOS_SIMULATOR_ARM64_PREFIX="${PREFIX}/tmp/ios-simulator-arm64" -export IOS_SIMULATOR_I386_PREFIX="${PREFIX}/tmp/ios-simulator-i386" -export IOS_SIMULATOR_X86_64_PREFIX="${PREFIX}/tmp/ios-simulator-x86_64" -export WATCHOS32_PREFIX="${PREFIX}/tmp/watchos32" -export WATCHOS64_32_PREFIX="${PREFIX}/tmp/watchos64_32" -export WATCHOS64_PREFIX="${PREFIX}/tmp/watchos64" -export WATCHOS_SIMULATOR_ARM64_PREFIX="${PREFIX}/tmp/watchos-simulator-arm64" -export WATCHOS_SIMULATOR_I386_PREFIX="${PREFIX}/tmp/watchos-simulator-i386" -export WATCHOS_SIMULATOR_X86_64_PREFIX="${PREFIX}/tmp/watchos-simulator-x86_64" -export TVOS_PREFIX="${PREFIX}/tmp/tvos" -export TVOS_SIMULATOR_ARM64_PREFIX="${PREFIX}/tmp/tvos-simulator-arm64" -export TVOS_SIMULATOR_X86_64_PREFIX="${PREFIX}/tmp/tvos-simulator-x86_64" -export VISIONOS_PREFIX="${PREFIX}/tmp/visionos" -export VISIONOS_SIMULATOR_PREFIX="${PREFIX}/tmp/visionos-simulator" -export CATALYST_ARM64_PREFIX="${PREFIX}/tmp/catalyst-arm64" -export CATALYST_X86_64_PREFIX="${PREFIX}/tmp/catalyst-x86_64" -export LOG_FILE="${PREFIX}/tmp/build_log" -export XCODEDIR="$(xcode-select -p)" - -export MACOS_VERSION_MIN=${MACOS_VERSION_MIN-"10.10"} -export IOS_SIMULATOR_VERSION_MIN=${IOS_SIMULATOR_VERSION_MIN-"9.0.0"} -export IOS_VERSION_MIN=${IOS_VERSION_MIN-"9.0.0"} -export WATCHOS_SIMULATOR_VERSION_MIN=${WATCHOS_SIMULATOR_VERSION_MIN-"4.0.0"} -export WATCHOS_VERSION_MIN=${WATCHOS_VERSION_MIN-"4.0.0"} -export TVOS_SIMULATOR_VERSION_MIN=${TVOS_SIMULATOR_VERSION_MIN-"9.0.0"} -export TVOS_VERSION_MIN=${TVOS_VERSION_MIN-"9.0.0"} - -echo -echo "Warnings related to headers being present but not usable are due to functions" -echo "that didn't exist in the specified minimum iOS version level." -echo "They can be safely ignored." -echo -echo "Define the LIBSODIUM_FULL_BUILD environment variable to build the full" -echo "library (including all deprecated/undocumented/low-level functions)." -echo -echo "Define the LIBSODIUM_SKIP_SIMULATORS environment variable to skip building" -echo "the simulators libraries (iOS, watchOS, tvOS, visionOS simulators)." -echo - -if [ -z "$LIBSODIUM_FULL_BUILD" ]; then - export LIBSODIUM_ENABLE_MINIMAL_FLAG="--enable-minimal" -else - export LIBSODIUM_ENABLE_MINIMAL_FLAG="" -fi - -APPLE_SILICON_SUPPORTED=false -echo 'int main(void){return 0;}' >comptest.c && cc --target=arm64-macos comptest.c 2>/dev/null && APPLE_SILICON_SUPPORTED=true -rm -f comptest.c - -NPROCESSORS=$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) -PROCESSORS=${NPROCESSORS:-3} - -swift_module_map() { - echo 'module Clibsodium {' - echo ' header "sodium.h"' - echo ' export *' - echo '}' -} - -build_ios() { - export BASEDIR="${XCODEDIR}/Platforms/iPhoneOS.platform/Developer" - export PATH="${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH" - export SDK="${BASEDIR}/SDKs/iPhoneOS.sdk" - - ## 32-bit iOS - export CFLAGS="-O2 -mthumb -arch armv7 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}" - export LDFLAGS="-mthumb -arch armv7 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}" - - make distclean >/dev/null 2>&1 - ./configure --host=arm-apple-darwin10 --prefix="$IOS32_PREFIX" \ - ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1 - make -j${PROCESSORS} install || exit 1 - - ## 32-bit armv7s iOS - export CFLAGS="-O2 -mthumb -arch armv7s -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}" - export LDFLAGS="-mthumb -arch armv7s -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}" - - make distclean >/dev/null 2>&1 - ./configure --host=arm-apple-darwin10 --prefix="$IOS32s_PREFIX" \ - ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1 - make -j${PROCESSORS} install || exit 1 - - ## 64-bit iOS - export CFLAGS="-O2 -arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}" - export LDFLAGS="-arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}" - - make distclean >/dev/null 2>&1 - ./configure --host=arm-apple-darwin10 --prefix="$IOS64_PREFIX" \ - ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1 - make -j${PROCESSORS} install || exit 1 -} - -mkdir -p "${PREFIX}/tmp" - -echo "Building for iOS... ($LOG_FILE)" -./autogen.sh -./configure -build_ios >"$LOG_FILE" 2>&1 || exit 1 - -echo "Adding the Clibsodium module map for Swift..." - -find "$PREFIX" -name "include" -type d -print | while read -r f; do - swift_module_map >"${f}/module.modulemap" -done - -echo "Bundling iOS targets..." - -mkdir -p "${PREFIX}/ios/lib" -cp -a "${IOS64_PREFIX}/include" "${PREFIX}/ios/" -for ext in a dylib; do - lipo -create \ - "$IOS32_PREFIX/lib/libsodium.${ext}" \ - "$IOS32s_PREFIX/lib/libsodium.${ext}" \ - "$IOS64_PREFIX/lib/libsodium.${ext}" \ - -output "$PREFIX/ios/lib/libsodium.${ext}" -done - -echo "Creating Clibsodium.xcframework..." - -rm -rf "${PREFIX}/Clibsodium.xcframework" - -XCFRAMEWORK_ARGS="" -for f in ios; do - XCFRAMEWORK_ARGS="${XCFRAMEWORK_ARGS} -library ${PREFIX}/${f}/lib/libsodium.a" - XCFRAMEWORK_ARGS="${XCFRAMEWORK_ARGS} -headers ${PREFIX}/${f}/include" -done -xcodebuild -create-xcframework \ - ${XCFRAMEWORK_ARGS} \ - -output "${PREFIX}/Clibsodium.xcframework" >/dev/null - -ls -ld -- "$PREFIX" -ls -l -- "$PREFIX" -ls -l -- "$PREFIX/Clibsodium.xcframework" - -echo "Done!" - -# Cleanup -rm -rf -- "$PREFIX/tmp" -make distclean >/dev/null -- cgit v1.2.3