diff --git a/cibuildwheel/__main__.py b/cibuildwheel/__main__.py index 67d908270..e5126a13e 100644 --- a/cibuildwheel/__main__.py +++ b/cibuildwheel/__main__.py @@ -147,15 +147,18 @@ 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') default_manylinux_images_x86_64 = {'manylinux1': 'quay.io/pypa/manylinux1_x86_64', 'manylinux2010': 'quay.io/pypa/manylinux2010_x86_64'} default_manylinux_images_i686 = {'manylinux1': 'quay.io/pypa/manylinux1_i686', 'manylinux2010': 'quay.io/pypa/manylinux2010_i686'} + default_manylinux_images_pypy_x86_64 = {'manylinux2010': 'pypywheels/manylinux2010-pypy_x86_64'} build_options.update( manylinux_images={'x86_64': default_manylinux_images_x86_64.get(manylinux_x86_64_image) or manylinux_x86_64_image, - 'i686': default_manylinux_images_i686.get(manylinux_i686_image) or manylinux_i686_image}, + 'i686': default_manylinux_images_i686.get(manylinux_i686_image) or manylinux_i686_image, + 'pypy_x86_64': default_manylinux_images_pypy_x86_64.get(manylinux_i686_image) or manylinux_pypy_x86_64_image}, ) elif platform == 'macos': pass diff --git a/cibuildwheel/linux.py b/cibuildwheel/linux.py index 233f1f024..c0e4a5f26 100644 --- a/cibuildwheel/linux.py +++ b/cibuildwheel/linux.py @@ -24,6 +24,8 @@ def get_python_configurations(build_selector): PythonConfiguration(identifier='cp35-manylinux_i686', path='/opt/python/cp35-cp35m'), PythonConfiguration(identifier='cp36-manylinux_i686', path='/opt/python/cp36-cp36m'), PythonConfiguration(identifier='cp37-manylinux_i686', path='/opt/python/cp37-cp37m'), + PythonConfiguration(identifier='pp271-manylinux_pypy_x86_64', path='/opt/python/pp271-pypy_41'), + PythonConfiguration(identifier='pp371-manylinux_pypy_x86_64', path='/opt/python/pp371-pypy3_71'), ] # skip builds as required @@ -44,6 +46,7 @@ def build(project_dir, output_dir, test_command, test_requires, test_extras, bef platforms = [ ('manylinux_x86_64', manylinux_images['x86_64']), ('manylinux_i686', manylinux_images['i686']), + ('manylinux_pypy_x86_64', manylinux_images['pypy_x86_64']), ] for platform_tag, docker_image in platforms: diff --git a/test/shared/utils.py b/test/shared/utils.py index 78f09050e..9244cb5ea 100644 --- a/test/shared/utils.py +++ b/test/shared/utils.py @@ -73,6 +73,10 @@ def expected_wheels(package_name, package_version): '{package_name}-{package_version}-cp35-cp35m-manylinux2010_i686.whl', '{package_name}-{package_version}-cp36-cp36m-manylinux2010_i686.whl', '{package_name}-{package_version}-cp37-cp37m-manylinux2010_i686.whl', + '{package_name}-{package_version}-pp271-pypy_41-manylinux1_x86_64.whl', + '{package_name}-{package_version}-pp371-pypy3_71-manylinux1_x86_64.whl', + '{package_name}-{package_version}-pp271-pypy_41-manylinux2010_x86_64.whl', + '{package_name}-{package_version}-pp371-pypy3_71-manylinux2010_x86_64.whl', ] elif platform == 'windows': templates = [