11# This file configures wheels compilation for `cibuilwheel` for SimSIMD CPython bindings.
22# On a good day it will produce:
3- # - `manylinux` and `musllinux` wheels for Linux on x86_64, aarch64, i686;
4- # - `macos` wheels for x86_64, arm64, and universal2 ;
5- # - `windows` wheels for AMD64, x86, and ARM64.
3+ # - `manylinux` and `musllinux` wheels for Linux on x86_64, aarch64, i686, ppc64le, s390x ;
4+ # - `macos` wheels for x86_64, arm64;
5+ # - `windows` wheels for AMD64, x86, ARM64.
66# * for 7 Python versions from 3.7 to 3.13.
77# * running thousands of fuzzy tests on each wheel.
88# = meaning 12 platforms * 7 Python versions = 84 builds.
@@ -23,16 +23,17 @@ test-requires = ["pytest", "pytest-repeat", "tabulate"]
2323# Assuming NumPy and SciPy aren't available precompiled for some platforms,
2424# we will end up compiling them from source on emulated hardware...
2525# To avoid that use `--only-binary=:all:` to only fetch precompiled wheels.
26+ # For better compatibility, we use (&&) to chain commands instead of (;).
2627test-command = """
27- python -m pip install numpy --only-binary=:all: || echo "Failed to install NumPy... Nothing can stop me, I'm all the way up!";
28- python -m pip install scipy --only-binary=:all: || echo "Failed to install SciPy... Nothing can stop me, I'm all the way up!";
29- python -c "import simsimd; print(simsimd.get_capabilities())";
28+ python -m pip install numpy --only-binary=:all: || ( echo "Failed to install NumPy" && exit 0) &&
29+ python -m pip install scipy --only-binary=:all: || ( echo "Failed to install SciPy" && exit 0) &&
30+ python -c "import simsimd; print(simsimd.get_capabilities())" &&
3031 pytest {project}/scripts/test.py -s -x -Wd
3132"""
3233
3334# We need to build for all platforms:
3435# - on Linux: x86_64, aarch64, i686
35- # - on MacOS: x86_64, arm64, universal2
36+ # - on MacOS: x86_64, arm64
3637# - on Windows: AMD64, x86, ARM64
3738# https://cibuildwheel.readthedocs.io/en/stable/options/#archs
3839#
0 commit comments