Skip to main content

max / audiofiles

1.2 KB · 45 lines History Blame Raw
1 #!/usr/bin/env bash
2 set -euo pipefail
3
4 SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
5 PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
6 DIST_DIR="$SCRIPT_DIR"
7 TARGET="x86_64-pc-windows-msvc"
8
9 # Read version from Cargo.toml
10 VERSION=$(grep '^version' "$PROJECT_DIR/crates/audiofiles-app/Cargo.toml" | head -1 | sed 's/.*"\(.*\)".*/\1/')
11 echo "Building AudioFiles v${VERSION} Windows (${TARGET})"
12
13 # Prerequisites check
14 if ! command -v cargo-xwin &>/dev/null; then
15 echo "Error: cargo-xwin not found. Install with: cargo install cargo-xwin"
16 exit 1
17 fi
18
19 if ! rustup target list --installed | grep -q "$TARGET"; then
20 echo "Error: Rust target $TARGET not installed. Add with: rustup target add $TARGET"
21 exit 1
22 fi
23
24 # Step 1: Build release binary
25 echo "==> Building release binary..."
26 cd "$PROJECT_DIR"
27 cargo xwin build --release -p audiofiles-app --target "$TARGET"
28
29 # Step 2: Copy artifact
30 echo "==> Copying artifact..."
31 EXE_NAME="audiofiles-app.exe"
32 SRC="$PROJECT_DIR/target/$TARGET/release/$EXE_NAME"
33
34 if [ ! -f "$SRC" ]; then
35 echo "Error: Build artifact not found at $SRC"
36 exit 1
37 fi
38
39 DEST="$DIST_DIR/AudioFiles_${VERSION}_x86_64.exe"
40 cp "$SRC" "$DEST"
41
42 echo ""
43 echo "Done: $DEST"
44 echo "Size: $(du -h "$DEST" | cut -f1)"
45