blob: 32e3db6118479cb892a3a67bb0e51f1ce42144f3 [file]
# Copyright (C) 2026 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
# GCC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GCC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
# This pyproject.toml file is used to facilitate installation of all required
# python dependencies. It is not used to distribute gcc related packages.
#
# Users of uv can get all potentially needed with
# uv sync --all-groups
# Whereas users of pip can use
# python -m pip install . --group all
# Note that these include packages only used in a subset of projects.
[build-system]
requires = ["setuptools>=66.1"]
build-backend = "setuptools.build_meta"
[project]
name = "gcc"
dynamic = ["version"]
description = "Tools used when building and developing gcc"
readme = "README"
# As of August 2026, upstream python supports only versions from 3.10 and above.
# Currently supported LTS distributions and unices all provide packages for
# at least python 3.10.
# pip added support for groups in 25.1 which requires python version 3.9
# pytest-pyodide, used by libffi, requires python 3.10
# black 26.0 requires python 3.10
requires-python = ">=3.10"
# Upper bounds below are conservative compatibility limits; not all projects
# publish or strictly follow Semantic Versioning.
dependencies = [
# we keep the black version pinned to an explicit calendar year
# in order to take advantage of black's stability policy.
"black ~= 26.0",
"GitPython<4",
"jsonschema<5",
"polib ~= 1.2.0", # does not indicate use of semver
"pytest<10",
"python-dateutil<3", # does not indicate use of semver
"PyYAML<7", # does not indicate use of semver
"requests<3",
"semantic-version<3",
"Unidecode<2", # does not indicate use of semver
"unidiff<2", # does not indicate use of semver
]
[dependency-groups]
ada = ["Pygments<3"]
libffi = ["pytest-pyodide"]
all = [
{ include-group = "ada" },
{ include-group = "libffi" },
]
[tool.setuptools]
# Disable package discovery
packages = []
[tool.setuptools.dynamic]
version = { file = ["gcc/BASE-VER"] }
[tool.black]
# target is same as requires-python
target-version = ["py310"]