#
#  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_*",
]
