File: meson-compatibility.rst

package info (click to toggle)
meson-python 0.19.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,328 kB
  • sloc: python: 3,114; ansic: 304; cpp: 16; makefile: 8
file content (75 lines) | stat: -rw-r--r-- 2,509 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.. SPDX-FileCopyrightText: 2023 The meson-python developers
..
.. SPDX-License-Identifier: MIT

.. _meson-compatibility:

*******************
Meson compatibility
*******************

``meson-python`` tightly integrates with Meson to produce Python
wheels and sdists. Therefore, correct operation depends on
functionality implemented by Meson.  ``meson-python`` strives to
maintain compatibility with as old as possible Meson releases.
However, some functionality is available only with more recent Meson
versions.

.. option:: 0.64.0

   Meson is 0.64.0 is the minimum required version.

.. option:: 1.1.0

   Meson 1.1.0 or later is required to support the ``exclude_files``
   and ``exclude_directories`` arguments to Meson ``install_subdir()``
   and similar installation functions. On older Meson versions, these
   arguments have no effect.

.. option:: 1.2.0

   Meson 1.2.0 or later is required to support the ``--skip-subprojects``
   option that can be passed to ``meson install`` to not include files
   installed by some or all subprojects in the Python wheel.

.. option:: 1.2.3

   Meson 1.2.3 or later is required to support Python 3.12 or later.
   Since version 1.2.3, Meson does not rely anymore on the
   ``distutils`` module, which was removed from the standard library
   in Python 3.12. When installed on Python 3.12, ``meson-python``
   depends on Meson 1.2.3 or later.

.. option:: 1.3.0

   Meson 1.3.0 or later is required for compiling extension modules
   targeting the Python limited API.

.. option:: 1.6.0

   Meson 1.6.0 or later is required to support ``license`` and
   ``license-files`` dynamic fields in ``pyproject.toml`` and to
   populate the package license and license files from the ones
   declared via the ``project()`` call in ``meson.build``.

.. option:: 1.9.0

   Meson 1.9.0 or later is required to support building for iOS.

Build front-ends by default build packages in an isolated Python
environment where build dependencies are installed. Most often, unless
a package or its build dependencies declare explicitly a version
constraint, this results in the most recent version of the build
dependencies to be installed. However, if a package uses
functionalities implemented only in combination with a specific Meson
version, it is recommended to explicitly declare a version
requirement in ``pyproject.toml``. For example:

.. code-block:: toml

   [build-system]
   build-backend = 'mesonpy'
   requires = [
     'meson-python',
     'meson >= 1.1.0',
   ]