#!/bin/bash set -euxo pipefail umask 022 SRC_DIR="${0%/*}" BUILD_ARM="$(mktemp -d -t conflict-set-arm)" BUILD_X86="$(mktemp -d -t conflict-set-x86)" cmake_args=(-DCMAKE_CXX_FLAGS=-DNVALGRIND -DCPACK_PACKAGING_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_COMPILER=/opt/homebrew/opt/llvm/bin/clang++) cmake -S"$SRC_DIR" -B"$BUILD_ARM" -DCMAKE_OSX_ARCHITECTURES=arm64 "${cmake_args[@]}" cmake --build "$BUILD_ARM" --target conflict-set --target conflict-set-static cmake -S"$SRC_DIR" -B"$BUILD_X86" -DCMAKE_OSX_ARCHITECTURES=x86_64 "${cmake_args[@]}" cmake --build "$BUILD_X86" --target conflict-set --target conflict-set-static VERSION="$(cat "$BUILD_ARM/version.txt")" lipo -create "$BUILD_ARM/radix_tree/libconflict-set.$VERSION.dylib" "$BUILD_X86/radix_tree/libconflict-set.$VERSION.dylib" -output "libconflict-set.$VERSION.dylib.tmp" lipo -create "$BUILD_ARM"/libconflict-set-static.a "$BUILD_X86"/libconflict-set-static.a -output libconflict-set-static.a.tmp mv "libconflict-set.$VERSION.dylib.tmp" "$BUILD_ARM/radix_tree/libconflict-set.$VERSION.dylib" mv libconflict-set-static.a.tmp "$BUILD_ARM/libconflict-set-static.a" pushd "$BUILD_ARM" cpack -G productbuild popd mv "$BUILD_ARM/conflict-set-$VERSION-Darwin.pkg" . rm -rf "$BUILD_ARM" "$BUILD_X86"