68 lines
1.9 KiB
Bash
Executable File
68 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
# --- Icons ---
|
|
./icons.sh
|
|
|
|
# --- 1. Build oxforge (MDK + CLI) ---
|
|
echo "=== Building oxforge ==="
|
|
cargo build -p oxforge --release
|
|
|
|
# --- 2. Build modules via oxforge ---
|
|
echo "=== Building modules ==="
|
|
# System modules (lib crates) are built as au-o2-gui dependencies.
|
|
# User modules (cdylib) need explicit build + packaging.
|
|
cargo build --release \
|
|
-p passthrough \
|
|
-p latency_checker
|
|
|
|
for module_dir in oxide-modules/passthrough oxide-modules/latency; do
|
|
if [ -f "$module_dir/module.toml" ]; then
|
|
echo " Packaging $module_dir"
|
|
./target/release/oxforge build --skip-build "$module_dir"
|
|
fi
|
|
done
|
|
|
|
# --- 3. Build au-o2-gui ---
|
|
echo "=== Building au-o2-gui ==="
|
|
cargo build -p au-o2-gui --release
|
|
|
|
# --- 4. Platform packaging ---
|
|
case "$OSTYPE" in
|
|
darwin*)
|
|
APP_NAME="Audio Oxide"
|
|
APP_DIR="target/release/$APP_NAME.app"
|
|
rm -rf "$APP_DIR"
|
|
mkdir -p "$APP_DIR/Contents/MacOS"
|
|
mkdir -p "$APP_DIR/Contents/Resources"
|
|
|
|
cp target/release/au-o2-gui "$APP_DIR/Contents/MacOS/"
|
|
cp au-o2-gui/assets/Info.plist "$APP_DIR/Contents/"
|
|
|
|
if [ -f au-o2-gui/assets/icon.icns ]; then
|
|
cp au-o2-gui/assets/icon.icns "$APP_DIR/Contents/Resources/"
|
|
fi
|
|
|
|
# Bundle packaged user modules
|
|
MODULES_DIR="$APP_DIR/Contents/Resources/modules"
|
|
mkdir -p "$MODULES_DIR"
|
|
for xfile in target/release/modules/*.x; do
|
|
[ -f "$xfile" ] && cp "$xfile" "$MODULES_DIR/"
|
|
done
|
|
|
|
echo "=== Built: $APP_DIR ==="
|
|
open "$APP_DIR"
|
|
;;
|
|
msys*|cygwin*|win*)
|
|
echo "=== Built: target/release/au-o2-gui.exe ==="
|
|
./target/release/au-o2-gui.exe
|
|
;;
|
|
*)
|
|
echo "=== Built: target/release/au-o2-gui ==="
|
|
./target/release/au-o2-gui
|
|
;;
|
|
esac
|