Package PeerSpeak for Windows as a single self-contained binary. The GUI icon, notification chimes, and avatar presets are already embedded via include_bytes!, and the cross-compiled .exe is statically linked (no extra DLLs), so the installer payload is just peerspeak.exe plus an .ico. - src/main.rs: set windows_subsystem = "windows" for release builds so the GUI launches without a stray console window (debug keeps the console for stderr/panics). - packaging/windows/: Inno Setup script (peerspeak.iss), multi-resolution app icon (peerspeak.ico), and a build README. The installer drops a Start-menu/desktop shortcut, optionally adds a Windows Firewall allow-rule (iroh UDP hole-punching), and provides an uninstaller. - win-cross-build.sh: promote the cross-build helper from a throwaway to the documented installer build step; .gitignore the staged exe + compiled setup.exe build artifacts. Built with Inno Setup 6.7.1 under Wine; binary is unsigned (SmartScreen will warn until code-signed). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
18 lines
882 B
Bash
Executable File
18 lines
882 B
Bash
Executable File
#!/bin/bash
|
|
# Cross-compile peerspeak to x86_64-pc-windows-gnu (run inside the peerspeak-win distrobox).
|
|
# Produces a statically-linked, self-contained .exe (no extra DLLs) for the
|
|
# Windows installer in packaging/windows/. Requires the rust-src component and
|
|
# the x86_64-pc-windows-gnu target; invoke with build-std for the static link:
|
|
# RUSTC_BOOTSTRAP=1 ./win-cross-build.sh -Z build-std=std,panic_abort
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")"
|
|
|
|
export CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER=x86_64-w64-mingw32-gcc
|
|
export CC_x86_64_pc_windows_gnu=x86_64-w64-mingw32-gcc
|
|
export CXX_x86_64_pc_windows_gnu=x86_64-w64-mingw32-g++
|
|
export AR_x86_64_pc_windows_gnu=x86_64-w64-mingw32-ar
|
|
# Bundled libopus declares cmake_minimum_required < 3.5; cmake 4.x refuses it.
|
|
export CMAKE_POLICY_VERSION_MINIMUM=3.5
|
|
|
|
cargo build --release --target x86_64-pc-windows-gnu --bin peerspeak "$@"
|