Consume new config file with pypy and extra architectures
This commit is contained in:
+19
-46
@@ -168,65 +168,38 @@ def main():
|
||||
)
|
||||
|
||||
if platform == 'linux':
|
||||
manylinux_x86_64_image = os.environ.get('CIBW_MANYLINUX_X86_64_IMAGE', 'manylinux2010')
|
||||
manylinux_i686_image = os.environ.get('CIBW_MANYLINUX_I686_IMAGE', 'manylinux2010')
|
||||
manylinux_pypy_x86_64_image = os.environ.get('CIBW_MANYLINUX_PYPY_X86_64_IMAGE', 'manylinux2010')
|
||||
manylinux_aarch64_image = os.environ.get('CIBW_MANYLINUX_AARCH64_IMAGE', 'manylinux2014')
|
||||
manylinux_ppc64le_image = os.environ.get('CIBW_MANYLINUX_PPC64LE_IMAGE', 'manylinux2014')
|
||||
manylinux_s390x_image = os.environ.get('CIBW_MANYLINUX_S390X_IMAGE', 'manylinux2014')
|
||||
|
||||
pinned_docker_images_file = os.path.join(
|
||||
os.path.dirname(__file__), 'resources', 'pinned_docker_images.cfg'
|
||||
)
|
||||
pinned_docker_images = ConfigParser()
|
||||
pinned_docker_images.read(pinned_docker_images_file)
|
||||
|
||||
# pinned_docker_images looks like a dict of dicts, e.g.
|
||||
# { 'manylinux1': {'x86_64': '...', 'i686': '...'},
|
||||
# 'manylinux2010': {'x86_64': '...', 'i686': '...'},
|
||||
# 'manylinux2014': {'x86_64': '...', 'i686': '...'} }
|
||||
all_pinned_docker_images = ConfigParser()
|
||||
all_pinned_docker_images.read(pinned_docker_images_file)
|
||||
# all_pinned_docker_images looks like a dict of dicts, e.g.
|
||||
# { 'x86_64': {'manylinux1': '...', 'manylinux2010': '...', 'manylinux2014': '...'},
|
||||
# 'i686': {'manylinux1': '...', 'manylinux2010': '...', 'manylinux2014': '...'},
|
||||
# 'pypy_x86_64': {'manylinux2010': '...' }
|
||||
# ... }
|
||||
|
||||
manylinux_images = {}
|
||||
|
||||
if manylinux_x86_64_image in pinned_docker_images:
|
||||
manylinux_images['x86_64'] = pinned_docker_images[manylinux_x86_64_image]['x86_64']
|
||||
else:
|
||||
manylinux_images['x86_64'] = manylinux_x86_64_image
|
||||
for build_platform in ['x86_64', 'i686', 'pypy_x86_64', 'aarch64', 'ppc64le', 's390x']:
|
||||
pinned_images = all_pinned_docker_images[build_platform]
|
||||
|
||||
if manylinux_i686_image in pinned_docker_images:
|
||||
manylinux_images['i686'] = pinned_docker_images[manylinux_i686_image]['i686']
|
||||
else:
|
||||
manylinux_images['i686'] = manylinux_i686_image
|
||||
config_name = 'CIBW_MANYLINUX_{}_IMAGE'.format(build_platform.upper())
|
||||
config_value = os.environ.get(config_name)
|
||||
|
||||
if manylinux_pypy_x86_64_image in pinned_docker_images:
|
||||
manylinux_images['pypy_x86_64'] = pinned_docker_images[manylinux_pypy_x86_64_image]['pypy_x86_64']
|
||||
else:
|
||||
manylinux_images['pypy_x86_64'] = manylinux_pypy_x86_64_image
|
||||
if config_value is None:
|
||||
# default to manylinux2010 if it's available, otherwise manylinux2014
|
||||
image = pinned_images.get('manylinux2010') or pinned_images.get('manylinux2014')
|
||||
elif config_value in pinned_images:
|
||||
image = pinned_images[config_value]
|
||||
else:
|
||||
image = config_value
|
||||
|
||||
if manylinux_aarch64_image in pinned_docker_images:
|
||||
manylinux_images['aarch64'] = pinned_docker_images[manylinux_aarch64_image]['aarch64']
|
||||
else:
|
||||
manylinux_images['aarch64'] = manylinux_aarch64_image
|
||||
|
||||
if manylinux_ppc64le_image in pinned_docker_images:
|
||||
manylinux_images['ppc64le'] = pinned_docker_images[manylinux_ppc64le_image]['ppc64le']
|
||||
else:
|
||||
manylinux_images['ppc64le'] = manylinux_ppc64le_image
|
||||
|
||||
if manylinux_s390x_image in pinned_docker_images:
|
||||
manylinux_images['x390x'] = pinned_docker_images[manylinux_s390x_image]['x390x']
|
||||
else:
|
||||
manylinux_images['x390x'] = manylinux_s390x_image
|
||||
|
||||
manylinux_images['pypy_x86_64'] = ''
|
||||
manylinux_images[build_platform] = image
|
||||
|
||||
build_options.update(
|
||||
manylinux_images=manylinux_images
|
||||
)
|
||||
elif platform == 'macos':
|
||||
pass
|
||||
elif platform == 'windows':
|
||||
pass
|
||||
|
||||
# Python is buffering by default when running on the CI platforms, giving problems interleaving subprocess call output with unflushed calls to 'print'
|
||||
sys.stdout = Unbuffered(sys.stdout)
|
||||
|
||||
Reference in New Issue
Block a user