Add aarch64 support for PyPy
This commit is contained in:
@@ -28,7 +28,7 @@ What does it do?
|
||||
| CPython 3.7 | ✅ | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| CPython 3.8 | ✅ | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| PyPy 3.7 v7.3 | ✅ | | ✅ | | ✅ | | | | |
|
||||
| PyPy 3.7 v7.3 | ✅ | | ✅ | | ✅ | | ✅ | | |
|
||||
|
||||
- Builds manylinux, macOS 10.9+, and Windows wheels for CPython and PyPy
|
||||
- Works on GitHub Actions, Azure Pipelines, Travis CI, AppVeyor, CircleCI, and GitLab CI
|
||||
@@ -110,7 +110,7 @@ Options
|
||||
| | [`CIBW_BEFORE_ALL`](https://cibuildwheel.readthedocs.io/en/stable/options/#before-all) | Execute a shell command on the build system before any wheels are built. |
|
||||
| | [`CIBW_BEFORE_BUILD`](https://cibuildwheel.readthedocs.io/en/stable/options/#before-build) | Execute a shell command preparing each wheel's build |
|
||||
| | [`CIBW_REPAIR_WHEEL_COMMAND`](https://cibuildwheel.readthedocs.io/en/stable/options/#repair-wheel-command) | Execute a shell command to repair each (non-pure Python) built wheel |
|
||||
| | [`CIBW_MANYLINUX_X86_64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) <br> [`CIBW_MANYLINUX_I686_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) <br> [`CIBW_MANYLINUX_PYPY_X86_64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) <br> [`CIBW_MANYLINUX_AARCH64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) <br> [`CIBW_MANYLINUX_PPC64LE_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) <br> [`CIBW_MANYLINUX_S390X_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) | Specify alternative manylinux docker images |
|
||||
| | [`CIBW_MANYLINUX_X86_64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) <br> [`CIBW_MANYLINUX_I686_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) <br> [`CIBW_MANYLINUX_PYPY_X86_64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) <br> [`CIBW_MANYLINUX_AARCH64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) <br> [`CIBW_MANYLINUX_PPC64LE_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) <br> [`CIBW_MANYLINUX_S390X_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) <br> [`CIBW_MANYLINUX_PYPY_AARCH64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) | Specify alternative manylinux docker images |
|
||||
| | [`CIBW_DEPENDENCY_VERSIONS`](https://cibuildwheel.readthedocs.io/en/stable/options/#dependency-versions) | Specify how cibuildwheel controls the versions of the tools it uses |
|
||||
| **Testing** | [`CIBW_TEST_COMMAND`](https://cibuildwheel.readthedocs.io/en/stable/options/#test-command) | Execute a shell command to test each built wheel |
|
||||
| | [`CIBW_BEFORE_TEST`](https://cibuildwheel.readthedocs.io/en/stable/options/#before-test) | Execute a shell command before testing each wheel |
|
||||
|
||||
@@ -32,6 +32,7 @@ images = [
|
||||
Image("manylinux2014", "ppc64le", "quay.io/pypa/manylinux2014_ppc64le", None),
|
||||
Image("manylinux2014", "s390x", "quay.io/pypa/manylinux2014_s390x", None),
|
||||
Image("manylinux2014", "pypy_x86_64", "quay.io/pypa/manylinux2014_x86_64", None),
|
||||
Image("manylinux2014", "pypy_aarch64", "quay.io/pypa/manylinux2014_aarch64", None),
|
||||
# 2_24 images
|
||||
Image("manylinux_2_24", "x86_64", "quay.io/pypa/manylinux_2_24_x86_64", None),
|
||||
Image("manylinux_2_24", "i686", "quay.io/pypa/manylinux_2_24_i686", None),
|
||||
@@ -39,6 +40,7 @@ images = [
|
||||
Image("manylinux_2_24", "ppc64le", "quay.io/pypa/manylinux_2_24_ppc64le", None),
|
||||
Image("manylinux_2_24", "s390x", "quay.io/pypa/manylinux_2_24_s390x", None),
|
||||
Image("manylinux_2_24", "pypy_x86_64", "quay.io/pypa/manylinux_2_24_x86_64", None),
|
||||
Image("manylinux_2_24", "pypy_aarch64", "quay.io/pypa/manylinux_2_24_aarch64", None),
|
||||
]
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
|
||||
@@ -285,7 +285,15 @@ def main() -> None:
|
||||
|
||||
manylinux_images = {}
|
||||
|
||||
for build_platform in ["x86_64", "i686", "pypy_x86_64", "aarch64", "ppc64le", "s390x"]:
|
||||
for build_platform in [
|
||||
"x86_64",
|
||||
"i686",
|
||||
"pypy_x86_64",
|
||||
"aarch64",
|
||||
"ppc64le",
|
||||
"s390x",
|
||||
"pypy_aarch64",
|
||||
]:
|
||||
pinned_images = all_pinned_docker_images[build_platform]
|
||||
|
||||
config_name = f"CIBW_MANYLINUX_{build_platform.upper()}_IMAGE"
|
||||
|
||||
@@ -69,6 +69,7 @@ def build(options: BuildOptions) -> None:
|
||||
("cp", "manylinux_ppc64le", options.manylinux_images["ppc64le"]),
|
||||
("cp", "manylinux_s390x", options.manylinux_images["s390x"]),
|
||||
("pp", "manylinux_x86_64", options.manylinux_images["pypy_x86_64"]),
|
||||
("pp", "manylinux_aarch64", options.manylinux_images["pypy_aarch64"]),
|
||||
]
|
||||
|
||||
cwd = Path.cwd()
|
||||
|
||||
@@ -21,6 +21,7 @@ python_configurations = [
|
||||
{ identifier = "cp37-manylinux_s390x", version = "3.7", path_str = "/opt/python/cp37-cp37m" },
|
||||
{ identifier = "cp38-manylinux_s390x", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
{ identifier = "cp39-manylinux_s390x", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "pp37-manylinux_aarch64", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" },
|
||||
]
|
||||
|
||||
[macos]
|
||||
|
||||
@@ -1,29 +1,33 @@
|
||||
[x86_64]
|
||||
manylinux1 = quay.io/pypa/manylinux1_x86_64:2021-05-23-5b75c59
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-23-b4fb34d
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-05-23-b4fb34d
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-05-23-b4fb34d
|
||||
manylinux1 = quay.io/pypa/manylinux1_x86_64:2021-05-24-df68af6
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-24-84874a2
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-05-24-84874a2
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-05-24-84874a2
|
||||
|
||||
[i686]
|
||||
manylinux1 = quay.io/pypa/manylinux1_i686:2021-05-23-5b75c59
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-05-23-b4fb34d
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-05-23-b4fb34d
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-05-23-b4fb34d
|
||||
manylinux1 = quay.io/pypa/manylinux1_i686:2021-05-24-df68af6
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-05-24-84874a2
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-05-24-84874a2
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-05-24-84874a2
|
||||
|
||||
[pypy_x86_64]
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-23-b4fb34d
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-05-23-b4fb34d
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-05-23-b4fb34d
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-24-84874a2
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-05-24-84874a2
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-05-24-84874a2
|
||||
|
||||
[aarch64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-05-23-b4fb34d
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-05-23-b4fb34d
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-05-24-84874a2
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-05-24-84874a2
|
||||
|
||||
[ppc64le]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-05-23-b4fb34d
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-05-23-b4fb34d
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-05-24-84874a2
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-05-24-84874a2
|
||||
|
||||
[s390x]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-05-23-b4fb34d
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-05-23-b4fb34d
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-05-24-84874a2
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-05-24-84874a2
|
||||
|
||||
[pypy_aarch64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-05-24-84874a2
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-05-24-84874a2
|
||||
|
||||
|
||||
+3
-1
@@ -478,6 +478,7 @@ The available options are:
|
||||
- `CIBW_MANYLINUX_AARCH64_IMAGE`
|
||||
- `CIBW_MANYLINUX_PPC64LE_IMAGE`
|
||||
- `CIBW_MANYLINUX_S390X_IMAGE`
|
||||
- `CIBW_MANYLINUX_PYPY_AARCH64_IMAGE`
|
||||
|
||||
Set an alternative Docker image to be used for building [manylinux](https://github.com/pypa/manylinux) wheels. cibuildwheel will then pull these instead of the default images, [`quay.io/pypa/manylinux2010_x86_64`](https://quay.io/pypa/manylinux2010_x86_64), [`quay.io/pypa/manylinux2010_i686`](https://quay.io/pypa/manylinux2010_i686), [`quay.io/pypa/manylinux2010_x86_64`](https://quay.io/pypa/manylinux2010_x86_64), [`quay.io/pypa/manylinux2014_aarch64`](https://quay.io/pypa/manylinux2014_aarch64), [`quay.io/pypa/manylinux2014_ppc64le`](https://quay.io/pypa/manylinux2014_ppc64le), and [`quay.io/pypa/manylinux2014_s390x`](https://quay.io/pypa/manylinux2010_s390x).
|
||||
|
||||
@@ -501,12 +502,13 @@ CIBW_SKIP: pp*
|
||||
# build using the manylinux2014 image
|
||||
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
|
||||
CIBW_MANYLINUX_I686_IMAGE: manylinux2014
|
||||
CIBW_SKIP: cp27-manylinux*
|
||||
CIBW_MANYLINUX_PYPY_X86_64_IMAGE: manylinux2014
|
||||
|
||||
# build using the latest manylinux2010 release, instead of the cibuildwheel
|
||||
# pinned version
|
||||
CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux2010_x86_64:latest
|
||||
CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux2010_i686:latest
|
||||
CIBW_MANYLINUX_PYPY_X86_64_IMAGE: quay.io/pypa/manylinux2010_x86_64:latest
|
||||
|
||||
# build using a different image from the docker registry
|
||||
CIBW_MANYLINUX_X86_64_IMAGE: dockcross/manylinux-x64
|
||||
|
||||
@@ -64,6 +64,7 @@ def test(manylinux_image, tmp_path):
|
||||
"CIBW_MANYLINUX_AARCH64_IMAGE": manylinux_image,
|
||||
"CIBW_MANYLINUX_PPC64LE_IMAGE": manylinux_image,
|
||||
"CIBW_MANYLINUX_S390X_IMAGE": manylinux_image,
|
||||
"CIBW_MANYLINUX_PYPY_AARCH64_IMAGE": manylinux_image,
|
||||
}
|
||||
if manylinux_image in {"manylinux1"}:
|
||||
# We don't have a manylinux1 image for PyPy
|
||||
|
||||
+1
-1
@@ -120,7 +120,7 @@ def expected_wheels(
|
||||
|
||||
python_abi_tags = ["cp36-cp36m", "cp37-cp37m", "cp38-cp38", "cp39-cp39"]
|
||||
|
||||
if machine_arch in ["x86_64", "AMD64", "x86"]:
|
||||
if machine_arch in ["x86_64", "AMD64", "x86", "aarch64"]:
|
||||
python_abi_tags += ["pp37-pypy37_pp73"]
|
||||
|
||||
if platform == "macos" and get_macos_version() >= (10, 16):
|
||||
|
||||
Reference in New Issue
Block a user