#!/usr/bin/env bash # # Build the SparklePlugin native library for Unity using Bazel # # Usage: build_sparkle_plugin.sh [output_dir] set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" OUTPUT_DIR="${1:-$PROJECT_ROOT/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Plugins/macOS}" echo "=== Building SparklePlugin with Bazel ===" cd "$PROJECT_ROOT" bazel build //src/main/objc/net/eagle0/clients/unity/sparkle:SparklePlugin # Get the zip path from bazel ZIP_PATH=$(bazel cquery --output=files //src/main/objc/net/eagle0/clients/unity/sparkle:SparklePlugin 2>/dev/null) echo "=== Extracting SparklePlugin.bundle ===" mkdir -p "$OUTPUT_DIR" rm -rf "$OUTPUT_DIR/SparklePlugin.bundle" unzip -o "$ZIP_PATH" -d "$OUTPUT_DIR/" # Convert Info.plist from binary to XML format (Unity requires XML) /usr/bin/plutil -convert xml1 "$OUTPUT_DIR/SparklePlugin.bundle/Contents/Info.plist" echo "=== SparklePlugin built successfully ===" ls -la "$OUTPUT_DIR/SparklePlugin.bundle/"