Skip to content

feat: Windows portable ZIP release#88

Merged
mrpollo merged 1 commit intoPX4:mainfrom
MikePehel:feat/windows-release
Apr 25, 2026
Merged

feat: Windows portable ZIP release#88
mrpollo merged 1 commit intoPX4:mainfrom
MikePehel:feat/windows-release

Conversation

@MikePehel
Copy link
Copy Markdown
Contributor

Resolves #80 — adds prebuilt Windows binaries so users no longer need to compile from source.

Summary

  • New windows-x64 job in .github/workflows/release.yml that compiles hawkeye.exe with MSVC on windows-latest, stages it alongside models/, shaders/, fonts/, textures/, themes/, LICENSE, and README.md, and uploads hawkeye-<version>-windows-x64.zip as a release asset on every v* tag.
  • Fix src/asset_path.c for Windows: user-data dir now resolves to %APPDATA%\hawkeye (was unset, causing asset_write_path to fall back to CWD and break screenshot/marker saves when the exe ran from a non-writable location); install dir now resolves from GetModuleFileNameA() rather than the compile-time HAWKEYE_INSTALL_DATADIR (which encodes a Unix-style /usr/share/... layout inappropriate for a portable ZIP).
  • Update README.md, docs/installation.md, and docs/developer/build.md to point Windows users at the ZIP and note the SmartScreen caveat on first launch.

Test plan

  • Local MSVC 19.50 build succeeds cleanly (cmake --build ... --config Release)
  • Resulting hawkeye.exe runs from the build dir
  • Copying hawkeye.exe + assets to %TEMP%\hawkeye-portable-test\ and launching from there renders the default quadrotor scene (confirms exe-dir asset resolution)
  • hawkeye --help exits cleanly before InitWindow, enabling the CI smoke test
  • Full CI run on a v* tag to confirm the ZIP is produced and uploaded

Follow-ups (out of scope)

  • Static-link the MSVC CRT (MSVC_RUNTIME_LIBRARY MultiThreaded) to eliminate the VCRUNTIME140.dll dependency for users on clean Windows installs
  • winget manifest submission
  • NSIS installer via CPack (only if users ask)

Closes #80

Add a windows-x64 job to the release workflow that builds hawkeye.exe
with MSVC, stages the binary alongside its assets, and uploads a
self-contained ZIP to the GitHub release.

Fix asset_path.c on Windows: populate user-data dir from %APPDATA%
and resolve the install dir from the running executable, so the
portable ZIP works from any extract location without relying on the
compile-time Unix install prefix.

Closes PX4#80
@MikePehel MikePehel mentioned this pull request Apr 23, 2026
@mrpollo mrpollo merged commit 27de335 into PX4:main Apr 25, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Windows Executable

2 participants