template-deno2.9.2-desktop-.../scripts/build-desktop.sh
2026-07-11 14:56:19 +02:00

45 lines
1.3 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
# Dots in the output basename break runtime discovery: the webview launcher
# strips the suffix after the last dot (e.g. template-deno2.9 -> template-deno2.so).
app="template-deno292-desktop-vue3-vite8"
linux_target="x86_64-unknown-linux-gnu"
macos_target="x86_64-apple-darwin"
windows_target="x86_64-pc-windows-msvc"
build_linux() {
deno desktop --target "$linux_target" --output "./out/linux/${app}" .
deno desktop --target "$linux_target" --output "./out/linux/${app}.AppImage" .
deno desktop --target "$linux_target" --output "./out/linux/${app}.deb" .
}
build_macos() {
deno desktop --target "$macos_target" --output "./out/macos/${app}.app" .
(cd out/macos && zip -r "${app}.app.zip" "${app}.app")
if [[ "$(uname -s)" == "Darwin" ]]; then
deno desktop --target "$macos_target" --output "./out/macos/${app}.dmg" .
else
echo "Skipping .dmg (requires a macOS build host with hdiutil)"
fi
}
build_windows() {
deno desktop --target "$windows_target" --output "./out/windows/${app}" .
deno desktop --target "$windows_target" --output "./out/windows/${app}.msi" .
}
case "${1:-all}" in
linux) build_linux ;;
macos) build_macos ;;
windows) build_windows ;;
all)
build_linux
build_macos
build_windows
;;
*)
echo "Usage: $0 [all|linux|macos|windows]" >&2
exit 1
;;
esac