diff --git a/.gitignore b/.gitignore index 33da4cf2c..735266120 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,6 @@ _deps _src licenses .virtual_documents +/libsodium-* +/zeromq-* +*.tar.gz diff --git a/docs/source/changelog.md b/docs/source/changelog.md index f8be834f5..cc4aaa078 100644 --- a/docs/source/changelog.md +++ b/docs/source/changelog.md @@ -7,6 +7,10 @@ For a full changelog, consult the [git log](https://github.com/zeromq/pyzmq/comm ## 26 +### 26.1.1 + +Windows wheels now statically link msvcp instead of bundling msvcp.dll, which could cause compatibility problems. + ### 26.1.0 26.1.0 is the first release with wheels for CPython 3.13. diff --git a/pyproject.toml b/pyproject.toml index 5838f6fe4..1f48ecac0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -178,6 +178,13 @@ repair-wheel-command = """\ {wheel} \ """ +[tool.cibuildwheel.windows.config-settings] +# statically link MSVCP +# see https://github.com/zeromq/pyzmq/issues/2012 +# and https://github.com/matplotlib/matplotlib/pull/28687 +"cmake.define.CMAKE_MSVC_RUNTIME_LIBRARY" = "MultiThreaded" +"cmake.define.CMAKE_SHARED_LINKER_FLAGS" = "ucrt.lib;vcruntime.lib;/nodefaultlib:libucrt.lib;/nodefaultlib:libvcruntime.lib" + [tool.cibuildwheel.windows.environment] ZMQ_PREFIX = "bundled" diff --git a/tools/test_wheel.py b/tools/test_wheel.py index 435c43f2c..dca9ee389 100644 --- a/tools/test_wheel.py +++ b/tools/test_wheel.py @@ -50,8 +50,8 @@ def test_bundle_msvcp(): print(dlls) # Is concrt140 needed? delvewheel doesn't detect it anymore # check for vcruntime? - should_bundle = ["msvcp140*.dll"] - shouldnt_bundle = [] + should_bundle = [] + shouldnt_bundle = ["msvcp140*.dll"] for pattern in shouldnt_bundle: matched = [dll for dll in dlls if fnmatch(dll, pattern)]