Improve expected_wheels correctness
This commit is contained in:
+25
-13
@@ -76,6 +76,19 @@ def cibuildwheel_run(project_path, package_dir='.', env=None, add_env=None, outp
|
|||||||
return wheels
|
return wheels
|
||||||
|
|
||||||
|
|
||||||
|
def _get_arm64_macosx_deployment_target(macosx_deployment_target: str) -> str:
|
||||||
|
'''
|
||||||
|
The first version of macOS that supports arm is 11.0. So the wheel tag
|
||||||
|
cannot contain an earlier deployment target, even if
|
||||||
|
MACOSX_DEPLOYMENT_TARGET sets it.
|
||||||
|
'''
|
||||||
|
version_tuple = tuple(map(int, macosx_deployment_target.split('.')))
|
||||||
|
if version_tuple <= (11, 0):
|
||||||
|
return '11.0'
|
||||||
|
else:
|
||||||
|
return macosx_deployment_target
|
||||||
|
|
||||||
|
|
||||||
def expected_wheels(package_name, package_version, manylinux_versions=None,
|
def expected_wheels(package_name, package_version, manylinux_versions=None,
|
||||||
macosx_deployment_target='10.9', machine_arch=None):
|
macosx_deployment_target='10.9', machine_arch=None):
|
||||||
'''
|
'''
|
||||||
@@ -103,12 +116,17 @@ def expected_wheels(package_name, package_version, manylinux_versions=None,
|
|||||||
if platform == 'linux':
|
if platform == 'linux':
|
||||||
python_abi_tags.append('cp27-cp27mu') # python 2.7 has 2 different ABI on manylinux
|
python_abi_tags.append('cp27-cp27mu') # python 2.7 has 2 different ABI on manylinux
|
||||||
|
|
||||||
if platform == 'macos' and get_macos_version() >= (11, 0):
|
if platform == 'macos' and get_macos_version() >= (10, 16):
|
||||||
# CPython 3.5 doesn't work on macOS 11.
|
# CPython 3.5 doesn't work on macOS 11.
|
||||||
|
# 10.16 is sometimes reported as the macOS version on macOS 11.
|
||||||
python_abi_tags.remove('cp35-cp35m')
|
python_abi_tags.remove('cp35-cp35m')
|
||||||
# pypy not supported on macOS 11.
|
# pypy not supported on macOS 11.
|
||||||
python_abi_tags = [t for t in python_abi_tags if not t.startswith('pp')]
|
python_abi_tags = [t for t in python_abi_tags if not t.startswith('pp')]
|
||||||
|
|
||||||
|
if platform == 'macos' and machine_arch == 'arm64':
|
||||||
|
# currently, arm64 macs are only supported by cp39
|
||||||
|
python_abi_tags = ['cp39-cp39']
|
||||||
|
|
||||||
wheels = []
|
wheels = []
|
||||||
|
|
||||||
for python_abi_tag in python_abi_tags:
|
for python_abi_tag in python_abi_tags:
|
||||||
@@ -133,18 +151,12 @@ def expected_wheels(package_name, package_version, manylinux_versions=None,
|
|||||||
platform_tags = ['win32']
|
platform_tags = ['win32']
|
||||||
|
|
||||||
elif platform == 'macos':
|
elif platform == 'macos':
|
||||||
if python_abi_tag == 'cp39-cp39':
|
if python_abi_tag == 'cp39-cp39' and machine_arch == 'arm64':
|
||||||
if machine_arch == 'x86_64':
|
arm64_macosx_deployment_target = _get_arm64_macosx_deployment_target(macosx_deployment_target)
|
||||||
platform_tags = [
|
platform_tags = [
|
||||||
f'macosx_{macosx_deployment_target.replace(".", "_")}_x86_64',
|
f'macosx_{macosx_deployment_target.replace(".", "_")}_universal2.macosx_{arm64_macosx_deployment_target.replace(".", "_")}_universal2',
|
||||||
]
|
f'macosx_{arm64_macosx_deployment_target.replace(".", "_")}_arm64',
|
||||||
elif machine_arch == 'arm64':
|
]
|
||||||
platform_tags = [
|
|
||||||
f'macosx_{macosx_deployment_target.replace(".", "_")}_universal2.macosx_11_0_universal2',
|
|
||||||
# macosx_deployment_target is ignored on arm64, because arm64 isn't supported on
|
|
||||||
# macOS earlier than 11.0
|
|
||||||
'macosx_11_0_arm64',
|
|
||||||
]
|
|
||||||
else:
|
else:
|
||||||
platform_tags = [
|
platform_tags = [
|
||||||
f'macosx_{macosx_deployment_target.replace(".", "_")}_x86_64',
|
f'macosx_{macosx_deployment_target.replace(".", "_")}_x86_64',
|
||||||
|
|||||||
Reference in New Issue
Block a user