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.

0.64.0

Meson is 0.64.0 is the minimum required version.

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.

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.

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.

1.3.0

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

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:

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