Story: Windows portability fixes
Table of Contents
This page documents a story in Sprint 17. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Close the first wave of Windows build breakages surfaced when Windows CI came on-line: WiX v3 size/file-count limits, libpq link ordering, OpenSSL dependency, PostgreSQL CMake imported-target hygiene, and a vcpkg opt-in feature for Qt.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 17 |
| Now | Completed 2026-04-22. |
| Waiting on | None. |
| Next | None. |
| Last touched | 2026-04-22 |
Acceptance
- All tasks complete; PR-by-PR breakdown in
git log.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Task: [qt.api] Move Cron widgets to qt.api to fix Windows link error | DONE | 2026-05-22 | 2026-05-22 | - `lld-link: undefined symbol: ores::qt::CronExpressionWidget::staticMetaObject` when linking `ores.qt.scheduler.dll` on |
| Task: [qt.api/database] Fix Windows MSVC export and libpq link | DONE | 2026-05-22 | 2026-05-22 | Two Windows-only fixes from the latest main CI run: |
| Task: [database] Link OpenSSL for libpq on Windows | DONE | 2026-05-22 | 2026-05-22 | Windows clang builds still fail linking \`ores.database.dll\` after #708: |
| Task: [backlog] Analyse Windows WiX installer size and file-count limits | DONE | 2026-05-22 | 2026-05-22 | Analysis story for the two WiX v3 failures still blocking the Windows \`cpack\` step, following up on PR #693 and commit |
| Task: [cpack/windows] Clear WiX v3 size and file-count limits | DONE | 2026-05-22 | 2026-05-22 | Short-term fixes from the WiX analysis in #710, clearing both remaining \`cpack\` errors on Windows. |
| Task: [cmake] Lift libpq Windows workaround to PostgreSQL imported target | DONE | 2026-05-22 | 2026-05-22 | PRs #708 and #709 patched the Windows libpq link workaround (\`pgport\`, \`pgcommon\`, \`OpenSSL::SSL\`/\`Crypto\`, \`Se |
| Task: [vcpkg] Add opt-in qt feature for Windows users | DONE | 2026-05-22 | 2026-05-22 | Some Windows users struggle to install Qt externally (e.g. Qt online |
Decisions
- Lift to imported target
- the libpq workaround that existed in multiple CMake files was consolidated into a single PostgreSQL imported target definition to avoid drift.
Out of scope
- MSVC C1202 constexpr depth issues (carried in msvc_c1202_fix story).
- Symbol visibility migration (carried in symbol_visibility story).
See also
None.