- add option to test release flow without pushing to main
- add cmake to musllinux
- upgrade manylinux to rh-devtoolset-11
- add llvm to macos
- made CMake no longer error on unused parameters because we have some functions that are different from upstream but we'd like to keep the same signature
This commit reimplements the (no longer recommended) setuptools based
build system using a standards-based in-tree PEP517 build backend.
The implementation is partially based on
https://codeberg.org/ziglang/zig-pypi/src/branch/main/make_wheels.py
which is licensed under BSD-0-clause.
It also adds a new option `YOSYS_BUILD_PYTHON_ONLY` that is available
only if the binary or the library aren't going to be installed, which
turns off these targets entirely, as well as some dependent ones
(e.g. tests).
Co-authored-by: Mohamed Gaber <me@donn.website>
The manylinux2014 image provides Python 3.13 and a GCC toolchain
already configured for glibc 2.17 compatibility, avoiding the
Python 3.6 syntax issues with bare centos:7.
Made-with: Cursor
Adds a parallel build-manylinux-wheel job using centos:7 container
with devtoolset-11 alongside the existing Alpine/musl wheel build.
Uses auditwheel to tag wheel as manylinux2014_x86_64.
Made-with: Cursor
The macOS job could upload to the latest release before the Linux
job recreated it, causing the macOS wheel to be lost. Now wait
for the Linux wheel to appear in latest first.
Made-with: Cursor
The macos-14 runner ships Python 3.14 by default, producing wheels
incompatible with Python 3.13 environments. Pin to 3.13 using
actions/setup-python and switch to macos-15 for consistency.
Made-with: Cursor
The macOS runner doesn't have ccache or pybind11 pre-installed.
Install ccache via brew and disable ENABLE_PYOSYS since we only
need the binary tarball (not the wheel) for macOS.
Made-with: Cursor