cake_wallet/scripts/macos/build_monero_all.sh
2024-08-18 15:25:44 +03:00

62 lines
1.6 KiB
Bash
Executable file

#!/bin/sh
set -x -e
cd "$(dirname "$0")"
NPROC="-j$(sysctl -n hw.logicalcpu)"
MONERO_LIBS=""
WOWNERO_LIBS=""
MONEROC_RELEASE_DIR="../monero_c/release/monero"
WOWNEROC_RELEASE_DIR="../monero_c/release/wownero"
../prepare_moneroc.sh
# NOTE: -j1 is intentional. Otherwise you will run into weird behaviour on macos
if [[ ! "x$USE_DOCKER" == "x" ]];
then
for COIN in monero wownero;
do
pushd ../monero_c
echo "unsupported!"
exit 1
popd
done
else
if [[ "x$1" == "xuniversal" ]]; then
ARCHS=(x86_64 arm64)
else
ARCHS=$(uname -m)
fi
for COIN in monero wownero;
do
MONERO_LIBS=""
WOWNERO_LIBS=""
for ARCH in "${ARCHS[@]}";
do
if [[ "$ARCH" == "arm64" ]]; then
export HOMEBREW_PREFIX=/opt/homebrew
HOST="aarch64-host-apple-darwin"
else
export HOMEBREW_PREFIX=/usr/local
HOST="${ARCH}-host-apple-darwin"
fi
MONERO_LIBS="$MONERO_LIBS -arch ${ARCH} ${MONEROC_RELEASE_DIR}/${HOST}_libwallet2_api_c.dylib"
WOWNERO_LIBS="$WOWNERO_LIBS -arch ${ARCH} ${WOWNEROC_RELEASE_DIR}/${HOST}_libwallet2_api_c.dylib"
if [[ ! $(uname -m) == $ARCH ]]; then
PRC="arch -${ARCH}"
else
PRC=""
fi
pushd ../monero_c
$PRC ./build_single.sh ${COIN} ${HOST} $NPROC
unxz -f ./release/${COIN}/${HOST}_libwallet2_api_c.dylib.xz
popd
done
done
fi
lipo -create ${MONERO_LIBS} -output "${MONEROC_RELEASE_DIR}/host-apple-darwin_libwallet2_api_c.dylib"
lipo -create ${WOWNERO_LIBS} -output "${WOWNEROC_RELEASE_DIR}/host-apple-darwin_libwallet2_api_c.dylib"