Skip to content

Build and test on Windows (MSYS2 CLANG64) - #2

Closed
AmyJeanes wants to merge 1 commit into
windowsfrom
windows-ci
Closed

Build and test on Windows (MSYS2 CLANG64)#2
AmyJeanes wants to merge 1 commit into
windowsfrom
windows-ci

Conversation

@AmyJeanes

Copy link
Copy Markdown
Owner

Fork-internal draft, stacked on the windows branch (commaai#61). Raised here so the follow-up's own diff is visible on its own; it will be recreated against commaai/rednose once commaai#61 has merged and the comma-deps Windows wheels are on PyPI (the dependencies PR), because uv sync needs comma-deps-eigen for win_amd64. The Windows CI entry on this PR is red for that reason; the same commit is green on all three platforms from a branch that points uv at a fork-built eigen wheel: https://github.com/AmyJeanes/rednose/actions/runs/34135696496

The standalone build and ./test.sh now run from an MSYS2 CLANG64 shell with a native Python, and CI gains a windows-latest entry running the same script:

  • SConstruct: the mingw tool with clang on Windows (the default tool picks MSVC), the lib prefix on the filter DLLs that ekf_load expects, libc++ linked statically so they load outside that shell, and the Cython module linked against the interpreter's import library and named .pyd.
  • The filter generators run through the interpreter on Windows: cmd.exe cannot start a script by its shebang.
  • The Python-side loader opens .dll filters, the counterpart of os: add support for windows commaai/rednose#61 for the cffi path.
  • tests.yml: only the Windows entry names its shell; the others keep bash -e {0}, GitHub's implicit default.

🤖 Generated with Claude Code

https://claude.ai/code/session_016AgqYZYWLpwE2T5vS3nVEt

The standalone build and test.sh now run from an MSYS2 CLANG64 shell with
a native Python: SCons uses the mingw tool with clang (the default tool
picks MSVC), keeps the lib prefix ekf_load expects on the filter DLLs and
links libc++ statically so they load outside that shell; the Cython module
links against the interpreter's import library and is named .pyd. The
filter generators run through the interpreter there, since cmd.exe cannot
start a script by its shebang, and the Python loader opens .dll filters.

CI gains a windows-latest entry running the same ./test.sh; only that
entry names its shell, the others keep GitHub's implicit `bash -e {0}`.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016AgqYZYWLpwE2T5vS3nVEt
@AmyJeanes

Copy link
Copy Markdown
Owner Author

Superseded by a draft from windows-ci-dev, which points uv at the fork's eigen wheel so the Windows entry can run green.

@AmyJeanes AmyJeanes closed this Sep 7, 2026
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