[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"

[tool.cibuildwheel]
build = "cp3[89]* cp310* cp311* cp312*"
test-command = "python -m tornado.test"

[tool.cibuildwheel.macos]
archs = "x86_64 universal2"
# The arm portion of a universal wheel is a cross-compile and cannot
# be tested on an x86 host. This must be configured explicitly to silence
# a warning.
test-skip = "*_universal2:arm64"

[tool.cibuildwheel.windows]
# TODO: figure out what's going on with these occasional log messages.
test-command = "python -m tornado.test --fail-if-logs=false"

[tool.cibuildwheel.linux]
# Build wheels for the native platform (i.e. x86) as well as an emulated
# build for aarch64.
archs = "auto aarch64"

[[tool.cibuildwheel.overrides]]
# The emulated arm build is quite slow, so only run a portion of the test
# suite. websocket_test is the most platform-dependent part of the tests
# because it uses the C speedups module.
select = "*linux_aarch64"
test-command = "python -m tornado.test tornado.test.websocket_test"
