#!/bin/zsh set -euo pipefail script_dir=${0:A:h} project_root=${script_dir:h:h} sparkle_root="$project_root/ThirdParty/Sparkle/2.9.4" source_file="$script_dir/project_quint_updater.mm" bundle_root="$project_root/Assets/ProjectQuint/Plugins/macOS/ProjectQuintUpdater.bundle" output_file="$bundle_root/Contents/MacOS/ProjectQuintUpdater" mkdir -p "${output_file:h}" /usr/bin/xcrun --sdk macosx clang++ \ -std=c++17 \ -O2 \ -DNDEBUG \ -fobjc-arc \ -fvisibility=hidden \ -mmacosx-version-min=12.0 \ -arch arm64 \ -arch x86_64 \ -dynamiclib \ -install_name '@rpath/ProjectQuintUpdater' \ -Wl,-rpath,'@loader_path/../../../../Frameworks' \ -F "$sparkle_root" \ -framework AppKit \ -framework Foundation \ -framework Sparkle \ "$source_file" \ -o "$output_file" /usr/bin/lipo "$output_file" -verify_arch arm64 x86_64 /usr/bin/otool -L "$output_file" | /usr/bin/grep -Fq "@rpath/Sparkle.framework/Versions/B/Sparkle" /usr/bin/otool -l "$output_file" | /usr/bin/grep -Fq "@loader_path/../../../../Frameworks" /usr/bin/codesign --force --sign - "$bundle_root" /usr/bin/codesign --verify --strict "$bundle_root" echo "Built Universal ProjectQuintUpdater: $output_file"