docs/manual: update documentation about support python <pkg>_SETUP_TYPE

Note that we do not document the special flit-bootstrap value, as it
is considered an internal implementation detail, and shouldn't
normally be used by packages.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Thomas Petazzoni 2024-02-06 23:19:00 +01:00
parent 36e635d2d5
commit 89e67a9638
2 changed files with 16 additions and 14 deletions

View File

@ -429,8 +429,8 @@ different way, using different infrastructures:
and xref:cmake-package-reference[reference]. and xref:cmake-package-reference[reference].
* *Makefiles for Python modules*: We have a dedicated infrastructure * *Makefiles for Python modules*: We have a dedicated infrastructure
for Python modules that use the +flit+, +pep517+ or +setuptools+ for Python modules that use the +flit+, +pep517+, +setuptools+,
mechanisms. We cover them through a +setuptools-rust+ or +maturin+ mechanisms. We cover them through a
xref:python-package-tutorial[tutorial] and a xref:python-package-tutorial[tutorial] and a
xref:python-package-reference[reference]. xref:python-package-reference[reference].

View File

@ -4,9 +4,9 @@
=== Infrastructure for Python packages === Infrastructure for Python packages
This infrastructure applies to Python packages that use the standard This infrastructure applies to Python packages that use the standard
Python setuptools or pep517 mechanisms as their build system, generally Python setuptools, pep517, flit or maturin mechanisms as their build
recognizable by the usage of a +setup.py+ script or +pyproject.toml+ system, generally recognizable by the usage of a +setup.py+ script or
file. +pyproject.toml+ file.
[[python-package-tutorial]] [[python-package-tutorial]]
@ -51,8 +51,9 @@ On line 13, we declare our dependencies, so that they are built
before the build process of our package starts. before the build process of our package starts.
On line 14, we declare the specific Python build system being used. In On line 14, we declare the specific Python build system being used. In
this case the +setuptools+ Python build system is used. The three this case the +setuptools+ Python build system is used. The five
supported ones are +flit+, +pep517+ and +setuptools+. supported ones are +flit+, +pep517+, +setuptools+, +setuptools-rust+
and +maturin+.
Finally, on line 16, we invoke the +python-package+ macro that Finally, on line 16, we invoke the +python-package+ macro that
generates all the Makefile rules that actually allow the package to be generates all the Makefile rules that actually allow the package to be
@ -98,13 +99,14 @@ Note that:
One variable specific to the Python infrastructure is mandatory: One variable specific to the Python infrastructure is mandatory:
* +PYTHON_FOO_SETUP_TYPE+, to define which Python build system is used * +PYTHON_FOO_SETUP_TYPE+, to define which Python build system is used
by the package. The three supported values are +flit+, +pep517+ and by the package. The five supported values are +flit+, +pep517+ and
+setuptools+. If you don't know which one is used in your package, +setuptools+, +setuptools-rust+ and +maturin+. If you don't know
look at the +setup.py+ or +pyproject.toml+ file in your package which one is used in your package, look at the +setup.py+ or
source code, and see whether it imports things from the +flit+ +pyproject.toml+ file in your package source code, and see whether
module or the +setuptools+ module. If the package is using a it imports things from the +flit+ module or the +setuptools+
+pyproject.toml+ file without any build-system requires and with a module. If the package is using a +pyproject.toml+ file without any
local in-tree backend-path one should use +pep517+. build-system requires and with a local in-tree backend-path one
should use +pep517+.
A few additional variables, specific to the Python infrastructure, can A few additional variables, specific to the Python infrastructure, can
optionally be defined, depending on the package's needs. Many of them optionally be defined, depending on the package's needs. Many of them