Specific Behaviors

This page documents how our backend handles certain situations.

MACOSX_DEPLOYMENT_TARGET

Note

macOS versioning changed from macOS 11 onwards. For macOS 10.x, the versioning scheme is 10.major.minor. From macOS 11, it is major.minor.bugfix. Wheel tags and deployment targets are currently designed to be for major versions only. Examples of the platform part of tags that are currently accepted by, e.g., pip are: macosx_10_9, macosx_10_13, macosx_11_0, macosx_12_0.

The target macOS version can be changed by setting the MACOSX_DEPLOYMENT_TARGET environment variable.

If MACOSX_DEPLOYMENT_TARGET is set, we will use the selected version for the wheel tag. Please use major versions only, so 10.13, 11, 12. If MACOSX_DEPLOYMENT_TARGET is not set, the current macOS major version on the build machine will be used instead (derived from platform.mac_ver()).

Note that another way of specifying the target macOS platform is to explicitly use -mmacosx-version-min compile and link flags when invoking Clang or GCC. It is not possible for meson-python to detect this though, so it will not set the wheel tag to that flag automatically.