Repository navigation
CI: build Windows wheels - #4
Merged
Merged
Conversation
- Build the Conan dependencies with MSVC (C++17, without GNU extensions). - Repair the wheels with delvewheel, using the dependencies DLLs. - Make sure cibuildwheel uses Git Bash, not WSL, to run ci/conan_deps.sh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…anch Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
So that a failing build (e.g. while fixing libqi) does not rebuild all the dependencies on the next run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…h MSVC) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The wheels are built with the latest MSVC (toolset 14.51), which requires an MSVC runtime at least as recent: an older msvcp140.dll on the user machine may make the module crash. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eels - Build the released libqi 4.0.7 (with the MSVC fixes) instead of the temporary libqi branch. - README: list the Windows wheels, and add the Windows build instructions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
thervier
force-pushed
the
ci/windows-wheels
branch
from
October 12, 2026 10:34
12926a7 to
90289e0
Compare
- pysession: `category` is unused when debug logs are compiled out. - pystrand: redundant std::move in return statement. - pyapplication, pytypes: implicit size_t conversions (MSVC C4267). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
delvewheel bundled the msvcp140.dll of the system (14.40), older than the compiler (14.51), which does not fix the compatibility issue. Bundle the one redistributed with the Visual Studio used to build the wheel instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Conan dependencies are only available in Release: with the Visual Studio (multi-config) generator, CMake reported errors for the imported targets in the other configurations (Debug, MinSizeRel, RelWithDebInfo). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds Windows x64 to the wheels built by CI, so wheels now cover CPython 3.10 → 3.15 on Linux x86_64, macOS arm64 and Windows x64.
CI changes:
windows-2025job runsci/conan_deps.shthrough Git Bash to build the dependencies with MSVC (cppstd=17, since MSVC has no GNU extensions).ci/repair_wheel_windows.pyrepairs the wheels withdelvewheel. It bundles the dependency DLLs and the MSVC C++ runtime (msvcp140.dll), taken from the Visual Studio used for the build (14.51). The system's copy (14.40) is older than the compiler and could make the module crash.CMAKE_CONFIGURATION_TYPES). With Visual Studio, CMake used to report errors for the Debug/MinSizeRel/RelWithDebInfo configurations, for which Conan provides no dependencies.QI_REF:ci/conan_deps.shcan build a libqi branch or tag, which makes it easier to test libqi changes.Fixes needed for Windows:
ssize_t→Py_ssize_tinsrc/pytypes.cpp.Warnings: fixes the compiler warnings in the bindings: an unused variable, a redundant
std::move, and implicitsize_tconversions on MSVC. The remaining warnings come from libqi headers (std::result_ofis deprecated) and will be handled separately in libqi.README: lists the Windows wheels and adds Windows build instructions (with cibuildwheel).
Tested: all 18 wheels build and pass the smoke test in CI. The Windows wheels need nothing beyond a 64-bit Python on Windows 10/11: the dependency DLLs and
msvcp140are bundled, andvcruntime140comes with Python.🤖 Generated with Claude Code