##// END OF EJS Templates
contrib: add a bat file to build all of the wheels on Windows...
contrib: add a bat file to build all of the wheels on Windows This is duplicated from the current CI config, to be able to build releases consistently outside of CI. I don't like the duplication, but I'm not worried about things changing too often, so I'm not bothering with PowerShell or some form that would allow execution by the CI runner. We should consider putting the config in `pyproject.toml`, where things like what python versions to support can be centrally controlled for all platforms. The output directory is different from CI here, but that's fine because it is intended to run this on a system that is *not* hosting the CI setup, and `dist/` is more standard. I dropped the `win32` part of the output because that implies the 32-bit Intel architecture. Apparently, arm64 builds are supported back to Python 3.9, but support is still experimental (with py3.13)[1]. The CI system starts arm64 support with Python 3.11, because that's the first version that an arm64 Python installer was available on Windows. This doesn't second guess that decision. The required `msgfmt.exe` was installed manually[2], as it isn't currently handled by the dependency installation script. Otherwise, this was successfully used with an activated venv based on Python 3.12.5, and only `cibuildwheel==2.21.3` installed. [1] https://cibuildwheel.pypa.io/en/stable/#what-does-it-do [2] https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.22.5a-v1.17-r3/gettext0.22.5a-iconv1.17-shared-64.exe

File last commit:

r53162:ea9cbb0f stable
r53162:ea9cbb0f stable
Show More
build-windows-wheels.bat
37 lines | 1.2 KiB | application/x-msdownload | BatchLexer
/ contrib / packaging / build-windows-wheels.bat
@echo off
REM - This is a convenience script to build all of the wheels outside of the CI
REM - system. It requires the cibuildwheel package to be installed, and the
REM - executable on PATH, as well as `msgfmt.exe` from gettext and the x86,
REM - amd64, and arm64 compilers from VS BuildTools. These can be obtained by
REM - running `contrib/install-windows-dependencies.ps1`.
REM - None of the variable set here live past this script exiting.
setlocal
REM - Build translations; requires msgfmt.exe on PATH.
set MERCURIAL_SETUP_FORCE_TRANSLATIONS=1
REM - Prevent building pypy wheels, which is broken.
set CIBW_SKIP=pp*
REM - Disable warning about not being able to test without an arm64 runner.
set CIBW_TEST_SKIP=*-win_arm64
REM - arm64 support starts with py39, but the first arm64 installer wasn't
REM - available until py311, so skip arm64 on the older, EOL versions.
set CIBW_ARCHS=x86 AMD64
set CIBW_BUILD=cp38-* cp39-* cp310-*
cibuildwheel --output-dir dist/wheels
if %errorlevel% neq 0 exit /b %errorlevel%
set CIBW_ARCHS=x86 AMD64 ARM64
set CIBW_BUILD=cp311-* cp312-* cp313-*
cibuildwheel --output-dir dist/wheels
if %errorlevel% neq 0 exit /b %errorlevel%