| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #!/usr/bin/env bash
- set -euo pipefail
- ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
- DERIVED_BASE="$ROOT_DIR/.deriveddata"
- log() {
- printf '[setup] %s\n' "$1"
- }
- require_cmd() {
- if ! command -v "$1" >/dev/null 2>&1; then
- echo "Missing required command: $1" >&2
- exit 1
- fi
- }
- require_cmd xcodebuild
- require_cmd xcrun
- log "Using developer dir: $(xcode-select -p)"
- log "Xcode version: $(xcodebuild -version | tr '\n' ' ' | sed 's/ */ /g')"
- if xcrun --find metal >/dev/null 2>&1; then
- METAL_BIN="$(xcrun --find metal)"
- if "$METAL_BIN" -v >/dev/null 2>&1; then
- log "Metal toolchain is ready: $METAL_BIN"
- else
- log "Metal toolchain is not ready, downloading component..."
- xcodebuild -downloadComponent MetalToolchain
- if ! "$METAL_BIN" -v >/dev/null 2>&1; then
- echo "Metal toolchain is still unavailable. Run Xcode once and retry." >&2
- exit 1
- fi
- log "Metal toolchain installed successfully."
- fi
- else
- log "metal command is missing, downloading component..."
- xcodebuild -downloadComponent MetalToolchain
- fi
- mkdir -p "$DERIVED_BASE/objc" "$DERIVED_BASE/swift"
- log "DerivedData folders prepared under $DERIVED_BASE"
- xcodebuild -project "$ROOT_DIR/QGVAPlayer/QGVAPlayer.xcodeproj" -list >/dev/null
- xcodebuild -project "$ROOT_DIR/QGVAPlayerDemo/QGVAPlayerDemo.xcodeproj" -list >/dev/null
- xcodebuild -project "$ROOT_DIR/QGVAPlayerDemoSwift/QGVAPlayerDemoSwift.xcodeproj" -list >/dev/null
- log "SDK dev environment check complete."
- log "Next: run scripts/dev/build_demo.sh all"
|