Support aarch64 wheel builds
## Support aarch64 wheel Builds
Closes https://github.com/matham/ffpyplayer/issues/178
Firstly, here's a working CI build: [https://github.com/iofq/ffpyplayer/actions/runs/15224996925/job/42826871473](https://github.com/iofq/ffpyplayer/actions/runs/15224996925/job/42826871473)
The Test step failed once on OSX, but succeeded the second time and appears to just be a race condition/performance issue: [https://github.com/iofq/ffpyplayer/actions/runs/15224996925/job/42826871473#step:9:160](https://github.com/iofq/ffpyplayer/actions/runs/15224996925/job/42826871473#step:9:160)
## Summary of Changes
- **`x265`**:
`x265`'s CMake files cease to work on CMake v4+ due to [policy deprecations](https://cmake.org/cmake/help/latest/release/4.0.html#deprecated-and-removed-features). The issue was fixed in x265 upstream in [https://bitbucket.org/multicoreware/x265_git/commits/b354c009a60bcd6d7fc04014e200a1ee9c45c167](https://bitbucket.org/multicoreware/x265_git/commits/b354c009a60bcd6d7fc04014e200a1ee9c45c167). CMake 4.0 was introduced to the manylinux2014 Docker images we're using in [https://github.com/pypa/manylinux/commit/dc69f53a59760ff349eeb6f6305de1c8c9a9d823#diff-12364f0a1989d08e72d764980ee91edcffd0c6cc162b143b21daae8e31f6d76e](https://github.com/pypa/manylinux/commit/dc69f53a59760ff349eeb6f6305de1c8c9a9d823#diff-12364f0a1989d08e72d764980ee91edcffd0c6cc162b143b21daae8e31f6d76e). I elected to pull the two patches needed to fix this for x265 (present in x265 master branch but not backported) and apply them.
- **`brotli`**:
On OSX, `brotli` suffered the same CMake fate, but I chose to use the CMake flag `-DCMAKE_POLICY_VERSION_MINIMUM=3.5` as the CMake-recommended workaround, rather than trying to patch the CMakeLists.txt file ourselves, since there is not an upstream patch available.
- **`libtheora`**:
On OSX, `libtheora` was bumped to version `1.2.0`, which was a long-awaited release (`1.1.1` was released in 2009) and contains compilation fixes for modern systems. Additionally, changed the `THEORA_ARCH` variable to use the correct host triplet for `configure`.
- **CI Pipeline**:
Updated to use the new GitHub Actions ARM runners (far faster than QEMU) for ARM wheel compilation and testing. Also, bumped `cibuildwheel` to the latest version.
合并状态:未合并 关闭于 2025-05-24 3 条评论