Skip to content

ci: add a Windows/MinGW configure-green CI job (Windows port, phase 0) - #7

Merged
lemenkov merged 1 commit into
masterfrom
windows-ci-scaffold
Jul 25, 2026
Merged

ci: add a Windows/MinGW configure-green CI job (Windows port, phase 0)#7
lemenkov merged 1 commit into
masterfrom
windows-ci-scaffold

Conversation

@lemenkov

Copy link
Copy Markdown
Owner

First step of porting SeerODBC to Windows. This lays the CI groundwork before any source is touched.

What this does

  • New build-windows CI job on windows-latest using the MSYS2 / MinGW-w64 toolchain. It installs gcc/meson/ninja/pkgconf/openssl/libiconv and runs meson setup — proving meson.build configures cleanly on Windows before a single line of source is ported.
  • Gates -D_GNU_SOURCE off Windows in the top-level meson.build. It's meaningful on glibc (harmless on macOS's BSD libc) but meaningless on MinGW, whose headers key off different feature macros. This was the only unconditional Linux-ism.

Scope / why configure-only

This is deliberately configure-green only. Compilation and unit tests join this same job incrementally as the winsock2 / libc shims land in later phases:

  1. (this PR) CI scaffold + configure-green
  2. core (src/common, src/tns) compiles — winsock/libc shims
  3. ODBC shim (src/odbc) — SQLWCHAR-is-UTF-16, .def export, seerodbc.dll
  4. loads under the MS Driver Manager + live query (self-gates like macOS)
  5. Setup DLL (ConfigDSN) + installer registration

MinGW is the initial target (fastest path to a green Windows CI); an MSVC leg follows later.

Verification

  • Local Linux meson setup + meson compile + meson test unchanged: 9 pass / 0 fail / 4 self-gated skips (the _GNU_SOURCE gate still applies on Linux, so behavior is identical).
  • Workflow YAML validated; jobs: build, build-macos, build-windows, integration.

🤖 Generated with Claude Code

First step of the Windows port. Adds a `build-windows` job that sets up
the MSYS2 / MinGW-w64 toolchain on windows-latest and runs `meson setup`,
proving meson.build configures cleanly on Windows before any source is
ported. Compilation and unit tests join this job as the winsock/libc
shims land; for now it deliberately stops at configure.

Also gate -D_GNU_SOURCE to the POSIX platforms: it is meaningless on
Windows/MinGW (whose headers key off different feature macros) and is the
only unconditional Linux-ism that would otherwise leak into the Windows
build.

MinGW is the initial target (the fastest path to green Windows CI); an
MSVC leg comes later.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0173iuaRnvQmnkAznCanShnF
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
@lemenkov
lemenkov merged commit 6feadd8 into master Jul 25, 2026
10 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.

1 participant