#!/bin/bash set -euo pipefail PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_PATH="$PROJECT_DIR/MLXServer.xcodeproj" RESOLVED_PATH="$PROJECT_PATH/project.xcworkspace/xcshareddata/swiftpm/Package.resolved" SPM_STATE_DIR="$PROJECT_DIR/build/swiftpm" PACKAGE_CACHE_PATH="$SPM_STATE_DIR/cache" CLONED_SOURCES_PATH="$SPM_STATE_DIR/clones" DERIVED_DATA_PATH="$PROJECT_DIR/build/DerivedData" echo "==> Resolving Swift packages from project.yml constraints" # For branch-based dependencies (like mlx-swift-lm main), force a fresh resolve # so the lockfile follows the current branch head. rm -f "$RESOLVED_PATH" rm -rf "$PACKAGE_CACHE_PATH" "$CLONED_SOURCES_PATH" rm -rf "$DERIVED_DATA_PATH" mkdir -p "$PACKAGE_CACHE_PATH" "$CLONED_SOURCES_PATH" xcodebuild \ -resolvePackageDependencies \ -project "$PROJECT_PATH" \ -scheme MLXServer \ -disablePackageRepositoryCache \ -packageCachePath "$PACKAGE_CACHE_PATH" \ -clonedSourcePackagesDirPath "$CLONED_SOURCES_PATH"