Add Windows build workflow#1038
Conversation
|
Thanks for the PR. I’ll leave it open for now, but I’m not going to merge it yet. Maybe once I gather a bit more courage. It is not that I don’t find it useful. It is more about my caution regarding the Windows platform. I am aware that distributing an That is why I am very careful when preparing the I have considered moving the That is why I created So this is really not about me refusing to build it on GitHub. It is about keeping the whole process as controlled and secure as possible. |
|
Thanks Ladislav, I understand the concern around Windows binaries. I revised the workflow to reduce the amount of third-party setup code and make the dependency setup easier to review:
This PR still downloads the OmniRig v1 and v2 installer EXEs at build time, from pinned URLs with pinned SHA256s, and extracts their type libraries with Happy to address anything else, or continue the discussion outside of the PR comments if that is easier. No rush at all. |
Summary
I put this together while working on the last PR. It adds a GitHub Actions workflow for building QLog on Windows x64 with Qt 6 and MSVC.
It builds two artifacts:
The workflow follows the same Windows target as
devtools/windowsMake/make.bat: Qt 6.10.2, MSVC 2022, x64, Hamlib 4.7.0, OpenSSL, zlib, and QtKeychain.What it does
windows-2022.deffile#importcan read their embedded type libraries at compile timeqmakeandjomwindeployqtDirect downloads are version-pinned and SHA256-checked where used.
Dependency approach
The Windows build follows a similar pattern to WSJT-X: use a prebuilt Hamlib package on Windows and bundle the Hamlib runtime DLL with the artifact. Linux and macOS keep using their normal package-manager dependencies.
OmniRig is only needed on Windows for COM/type-library support. The workflow extracts the OmniRig v1/v2 EXEs from public installer payloads so MSVC
#importcan read their embedded type libraries. It does not run the OmniRig installers, and it does not bundle OmniRig with QLog.QtKeychain is built from source against the workflow-installed Qt instead of through vcpkg, since the vcpkg port can pull Qt in as a dependency.
This keeps the CI build close to QLog's existing Windows build script and makes it work on a clean GitHub-hosted Windows runner.
Compatibility
This workflow builds a 64-bit Qt 6/MSVC package, so Windows compatibility follows the supported platforms for the Qt 6.10.2 MSVC 2022 build used here.
Validation
Tested on a private fork before opening this PR: