| # 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"] |