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.

Emacs 29.1 (Org mode 9.6.6)