@@ -79,6 +79,8 @@ in alphabetical order:
79
79
through plugins.
80
80
81
81
- :ref: `setuptools ` (which used to be the only build backend). It can be configured
82
+ using modern standards like `pyproject.toml `, but can also be extended
83
+ and supports customisation via `setup.py `.
82
84
programmatically through the :file: `setup.py ` file (but for basic metadata,
83
85
:file: `pyproject.toml ` is preferred).
84
86
@@ -95,11 +97,13 @@ the standard library in Python 3.12, although it still remains available from
95
97
setuptools.
96
98
97
99
For packages with :term: `extension modules <extension module> `, you may use
98
- setuptools. However, you can also use a build system with dedicated support for
99
- the language the extension is written in. For example, you could choose Meson or
100
- CMake for C, C++, Fortran and many other compiled languages; or Cargo for Rust
101
- specifically. You can then bridge this build system to Python using a dedicated
102
- build backend:
100
+ a build system with dedicated support for the language the extension is written in,
101
+ for example:
102
+
103
+ - :ref: `setuptools ` - natively supports C/C++ (with 3rd-party plugins for Go and Rust);
104
+ - :ref: `meson-python ` - C, C++, Fortran, and Rust and other languages supported by Meson;
105
+ - :ref: `scikit-build-core ` - C, C++, Fortran and other languages supported by CMake;
106
+ - :ref: `maturin ` - Rust, via Cargo.
103
107
104
108
- :ref: `meson-python ` for Meson,
105
109
0 commit comments