mirror of
https://github.com/nolen777/eagle0.git
synced 2026-07-28 21:35:42 +00:00
Move SparklePlugin to separate Bazel workspace to resolve rules_swift conflict (#5882)
* Move SparklePlugin to separate Bazel workspace to resolve rules_swift conflict The problem: grpc 1.76.0.bcr.1 requires rules_swift 3.x, but rules_apple 4.x requires rules_swift 2.x. These have different compatibility levels, causing bzlmod resolution to fail when both are in the same workspace. The solution: Move SparklePlugin (the only thing using rules_apple) to a separate Bazel workspace at `sparkle_workspace/`. This workspace has its own MODULE.bazel with only rules_apple and Sparkle dependencies, completely isolated from the grpc/flatbuffers dependency tree. Changes: - Create sparkle_workspace/ with isolated MODULE.bazel - Move SparklePlugin source files to sparkle_workspace/ - Update build_sparkle_plugin.sh to build from subworkspace - Remove rules_apple from main MODULE.bazel - Add single_version_override for rules_swift 3.1.2 (for grpc/flatbuffers) All 315 tests pass. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Add WORKSPACE.bazel to sparkle_workspace to prevent parent workspace detection Without this file, Bazel may walk up the directory tree and find the parent workspace's MODULE.bazel, causing dependency conflicts. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,9 @@
|
||||
#
|
||||
# Build the SparklePlugin native library for Unity using Bazel
|
||||
#
|
||||
# The SparklePlugin is built in a separate Bazel workspace (sparkle_workspace/)
|
||||
# to avoid rules_swift version conflicts between grpc and rules_apple.
|
||||
#
|
||||
# Usage: build_sparkle_plugin.sh [output_dir]
|
||||
|
||||
set -euo pipefail
|
||||
@@ -11,12 +14,14 @@ 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 ==="
|
||||
echo "=== Building SparklePlugin with Bazel (from sparkle_workspace) ==="
|
||||
|
||||
bazel build --config=mactools //src/main/objc/net/eagle0/sparkle:SparklePlugin
|
||||
# Build in the separate sparkle_workspace to avoid dependency conflicts
|
||||
cd "$PROJECT_ROOT/sparkle_workspace"
|
||||
bazel build //:SparklePlugin
|
||||
|
||||
# Get the zip path from bazel
|
||||
ZIP_PATH=$(bazel cquery --config=mactools --output=files //src/main/objc/net/eagle0/sparkle:SparklePlugin 2>/dev/null)
|
||||
ZIP_PATH=$(bazel cquery --output=files //:SparklePlugin 2>/dev/null)
|
||||
|
||||
echo "=== Extracting SparklePlugin.bundle ==="
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
|
||||
Reference in New Issue
Block a user