@@ -65,12 +65,13 @@ jobs:
6565 make install
6666 popd
6767
68- # Boost headers (header-only; no build needed)
69- BOOST_V=1_84_0
70- curl -fsSL -o boost.tar.bz2 https://boostorg.jfrog.io/artifactory/main/release/1.84.0/source/boost_${BOOST_V}.tar.bz2
71- tar -xjf boost.tar.bz2
68+ # Boost headers (header-only; no build needed). Use archives.boost.io and .tar.gz for reliability
69+ BOOST_U=1_84_0
70+ BOOST_D=1.84.0
71+ curl -fsSL -o boost.tar.gz https://archives.boost.io/release/${BOOST_D}/source/boost_${BOOST_U}.tar.gz
72+ tar -xzf boost.tar.gz
7273 mkdir -p /opt/boost/include
73- cp -r boost_${BOOST_V }/boost /opt/boost/include/
74+ cp -r boost_${BOOST_U }/boost /opt/boost/include/
7475
7576 # Help CMake find FFTW via pkg-config and Boost headers via define
7677 CIBW_ENVIRONMENT_LINUX : >
@@ -123,13 +124,47 @@ jobs:
123124 uses : pypa/cibuildwheel@v2.21.3
124125 env :
125126 CIBW_BUILD : cp310-* cp311-* cp312-*
126- CIBW_SKIP : pp*
127- # Let cibuildwheel build for the host arch on each runner
128- CIBW_ARCHS_MACOS : native
129- # Ensure pkg-config sees Homebrew's .pc files across both arch locations
130- CIBW_ENVIRONMENT_MACOS : >
131- PKG_CONFIG_PATH=/opt/homebrew/lib/pkgconfig:/usr/local/lib/pkgconfig
132- CMAKE_ARGS="-DHF_USE_OPENMP=ON -DHF_USE_FFTW_THREADS=ON"
127+ CIBW_SKIP : pp* *-musllinux_*
128+ CIBW_ARCHS_LINUX : x86_64 aarch64
129+
130+ # (optional) pin image for consistency
131+ CIBW_MANYLINUX_X86_64_IMAGE : manylinux_2_28
132+ CIBW_MANYLINUX_AARCH64_IMAGE : manylinux_2_28
133+
134+ CIBW_BEFORE_ALL_LINUX : |
135+ set -eux
136+
137+ # Install pkg-config (pkgconf) on either dnf- or yum-based images
138+ if command -v dnf >/dev/null 2>&1; then
139+ dnf -y install pkgconf-pkg-config
140+ elif command -v yum >/dev/null 2>&1; then
141+ yum -y install pkgconfig || yum -y install pkgconf-pkg-config || true
142+ fi
143+
144+ FFTW_V=3.3.10
145+ curl -fsSL -o fftw.tar.gz http://www.fftw.org/fftw-${FFTW_V}.tar.gz
146+ tar -xzf fftw.tar.gz
147+ pushd fftw-${FFTW_V}
148+ ./configure --prefix=/opt/fftw --enable-shared --enable-threads
149+ make -j"$(nproc)"
150+ make install
151+ popd
152+
153+ # Header-only Boost for Boost.Math
154+ BOOST_U=1_84_0
155+ BOOST_D=1.84.0
156+ curl -fsSL -o boost.tar.gz https://archives.boost.io/release/${BOOST_D}/source/boost_${BOOST_U}.tar.gz
157+ tar -xzf boost.tar.gz
158+ mkdir -p /opt/boost/include
159+ cp -r boost_${BOOST_U}/boost /opt/boost/include/
160+
161+ # Help CMake find FFTW and Boost; set both CMAKE_ARGS and SKBUILD_CMAKE_ARGS
162+ CIBW_ENVIRONMENT_LINUX : >
163+ PKG_CONFIG_PATH=/opt/fftw/lib/pkgconfig
164+ CMAKE_PREFIX_PATH=/opt/fftw
165+ CMAKE_ARGS="-DHF_USE_OPENMP=ON -DHF_USE_FFTW_THREADS=ON -DFFTW_ROOT=/opt/fftw -DBoost_INCLUDE_DIR=/opt/boost/include"
166+ SKBUILD_CMAKE_ARGS="-DHF_USE_OPENMP=ON -DHF_USE_FFTW_THREADS=ON -DFFTW_ROOT=/opt/fftw -DBoost_INCLUDE_DIR=/opt/boost/include"
167+
133168 CIBW_TEST_COMMAND : >
134169 python - <<'PY'
135170 import numpy as np, cpp_hf
@@ -144,6 +179,7 @@ jobs:
144179 print("wheel ok", int(n), float(mu))
145180 PY
146181
182+
147183 - name : Upload macOS wheels
148184 uses : actions/upload-artifact@v4
149185 with :
0 commit comments