mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-08-02 17:18:36 +02:00
46 lines
1.1 KiB
Bash
46 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
# Build the Go backend XCFramework used by SpotiFLAC Mobile on iOS.
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
GO_BACKEND_DIR="$PROJECT_DIR/go_backend"
|
|
OUTPUT_DIR="$PROJECT_DIR/ios/Frameworks"
|
|
|
|
echo "SpotiFLAC Mobile iOS backend build"
|
|
echo "Project: $PROJECT_DIR"
|
|
echo "Output: $OUTPUT_DIR"
|
|
|
|
if [[ "$(uname)" != "Darwin" ]]; then
|
|
echo "Error: this script must run on macOS with Xcode installed." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v go >/dev/null 2>&1; then
|
|
echo "Error: Go is not installed." >&2
|
|
exit 1
|
|
fi
|
|
|
|
cd "$GO_BACKEND_DIR"
|
|
go mod download
|
|
|
|
# Running inside the module installs the x/mobile revision pinned by go.mod.
|
|
go install golang.org/x/mobile/cmd/gomobile
|
|
export PATH="$(go env GOPATH)/bin:$PATH"
|
|
gomobile init
|
|
|
|
mkdir -p "$OUTPUT_DIR"
|
|
gomobile bind \
|
|
-target=ios \
|
|
-tags ios \
|
|
-o "$OUTPUT_DIR/Gobackend.xcframework" \
|
|
.
|
|
|
|
if [[ ! -d "$OUTPUT_DIR/Gobackend.xcframework" ]]; then
|
|
echo "Error: Gobackend.xcframework was not created." >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Built $OUTPUT_DIR/Gobackend.xcframework"
|