Skip to content

Commit cd44214

Browse files
dnicolodirgommers
authored andcommitted
BUG: allow $MACOSX_DEPLOYMENT_TARGET to be set to major version only
Accept version specifiers containing only the major version, for example "11", in addition to the already supported major.minor and major.minor.patch formats, for example "11.0" or "11.0.0".
1 parent 09b86c5 commit cd44214

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

mesonpy/_tags.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,8 @@ def _get_macosx_platform_tag() -> str:
109109
# Override the macOS version if one is provided via the
110110
# MACOSX_DEPLOYMENT_TARGET environment variable.
111111
try:
112-
version = tuple(map(int, os.environ.get('MACOSX_DEPLOYMENT_TARGET', '').split('.')))[:2]
112+
parts = os.environ.get('MACOSX_DEPLOYMENT_TARGET', '').split('.')[:2]
113+
version = tuple(map(int, parts + ['0'] * (2 - len(parts))))
113114
except ValueError:
114115
version = tuple(map(int, ver.split('.')))[:2]
115116

@@ -164,7 +165,8 @@ def _get_ios_platform_tag() -> str:
164165
# Override the iOS version if one is provided via the
165166
# IPHONEOS_DEPLOYMENT_TARGET environment variable.
166167
try:
167-
version = tuple(map(int, os.environ.get('IPHONEOS_DEPLOYMENT_TARGET', '').split('.')))[:2]
168+
parts = os.environ.get('IPHONEOS_DEPLOYMENT_TARGET', '').split('.')[:2]
169+
version = tuple(map(int, parts + ['0'] * (2 - len(parts))))
168170
except ValueError:
169171
version = tuple(map(int, platform.ios_ver().release.split('.')))[:2] # type: ignore[attr-defined]
170172

tests/test_tags.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ def test_macos_platform_tag(monkeypatch):
5555
for minor in range(3):
5656
monkeypatch.setenv('MACOSX_DEPLOYMENT_TARGET', f'{major}.{minor}')
5757
assert next(packaging.tags.mac_platforms((major, minor))) == mesonpy._tags.get_platform_tag()
58+
for major in range(11, 13):
59+
monkeypatch.setenv('MACOSX_DEPLOYMENT_TARGET', f'{major}.0')
60+
assert next(packaging.tags.mac_platforms((major, 0))) == mesonpy._tags.get_platform_tag()
61+
monkeypatch.setenv('MACOSX_DEPLOYMENT_TARGET', f'{major}')
62+
assert next(packaging.tags.mac_platforms((major, 0))) == mesonpy._tags.get_platform_tag()
5863

5964

6065
@pytest.mark.skipif(sys.platform != 'darwin', reason='macOS specific test')

0 commit comments

Comments
 (0)