Story: Build stabilisation 3

Table of Contents

This page documents a story in Sprint 03. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

Bring the build environment to a state where Windows, Linux, and macOS all build cleanly and CI has a real Postgres for integration tests.

Status

Field Value
State DONE
Parent sprint Sprint 03
Now Story closed; Windows clang-cl preset in place, dynamic-library build healthy, vcpkg patches apply on Windows, Postgres available in CI.
Waiting on None.
Next None.
Last touched 2025-11-15

Acceptance

  • windows-msvc-clang-cl preset configures and builds.
  • The build produces dynamic libraries by default.
  • vcpkg ports apply patches successfully on Windows.
  • CI runs against a Postgres instance.

Tasks

Task State Start End Description
Add support for windows-msvc-clang-cl DONE 2025-11-15 2025-11-15 Add a CMake preset and toolchain wiring for clang-cl on Windows alongside MSVC.
Build using dynamic libraries DONE 2025-11-15 2025-11-15 Switch the build to produce dynamic libraries to reduce link times and binary footprint.
Fix vcpkg patch application on Windows DONE 2025-11-15 2025-11-15 Diagnose and work around vcpkg failing to apply a port patch on Windows.

Decisions

Dynamic libraries by default
cut link times across the board and let plugin-style components (Qt-side widgets, codegen outputs) load incrementally.
clang-cl as a first-class Windows toolchain
lets us share most warnings / sanitisers with the Linux clang build.

Out of scope

  • macOS notarisation, Windows code signing (deferred).
  • ASan / TSan runs (deferred to a logging/observability story).

See also

Emacs 29.1 (Org mode 9.6.6)