blob: 989fb08d3332837fb3f42d1d73b4f485734f3958 [file] [log] [blame]
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
[build-system]
requires = [
# We need at least version 36.6.0 that introduced "build_meta"
"setuptools>=36.6.0",
# In order to build wheels, and as required by PEP 517
"wheel",
# Require a new enough cython for the python versions we support
"Cython>=0.29.25",
"packaging",
]
build-backend = "setuptools.build_meta"
[tool.black]
line-length = 119
exclude = '''
(
/(
\.eggs
| \.git
| \.mypy_cache
| \.tox
| _build
| build
| dist
)/
| src/buildstream/_protos
)
'''
[tool.cibuildwheel]
build-frontend = "build"
environment = { BST_BUNDLE_BUILDBOX = "1" }
# The BuildBox binaries produced in buildbox-integration are linked against GLIBC 2.28
# from Debian 10. See: https://gitlab.com/BuildGrid/buildbox/buildbox-integration.
#
# The PyPA manylinux_2_28 platform tag identifies that our wheel will run on any x86_64
# OS with GLIBC >= 2.28. Following this setting, `cibuildwheel` builds the packages in
# the corresponding manylinux_2_28 container image. See: https://github.com/pypa/manylinux
manylinux-x86_64-image = "manylinux_2_28"
skip = [
# BuildStream supports Python >= 3.7
"cp36-*",
# PyPy may work, but nobody is testing it so avoid distributing prebuilt binaries.
"pp*",
# Skipping this niche archicture ~halves overall build time.
"*_i686",
# The prebuilt BuildBox binaries link against GLibc so will work on manylinux but not musllinux
"*-musllinux_*",
]