Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/dockercentos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,13 @@ jobs:
fail-fast: false
matrix:
cfg:
- { img: 'lebarsfa/manylinux_2_28_x86_64-for-codac' , os: ubuntu-latest , shell: bash, arch: x86_64 , bitness: 64, runtime: manylinux_2_28, min_python: '3.14', max_python: ' ', desc: 'CentOS manylinux_2_28 x86_64 Python >=3.14' }
- { img: 'lebarsfa/manylinux_2_28_x86_64-for-codac' , os: ubuntu-latest , shell: bash, arch: x86_64 , bitness: 64, runtime: manylinux_2_28, min_python: '3.15', max_python: ' ', desc: 'CentOS manylinux_2_28 x86_64 Python >=3.15' }
- { img: 'lebarsfa/manylinux_2_28_x86_64-for-codac' , os: ubuntu-latest , shell: bash, arch: x86_64 , bitness: 64, runtime: manylinux_2_28, min_python: '3.14', max_python: '3.14', desc: 'CentOS manylinux_2_28 x86_64 Python 3.14' }
- { img: 'lebarsfa/manylinux_2_28_x86_64-for-codac' , os: ubuntu-latest , shell: bash, arch: x86_64 , bitness: 64, runtime: manylinux_2_28, min_python: '3.13', max_python: '3.13', desc: 'CentOS manylinux_2_28 x86_64 Python 3.13' }
- { img: 'lebarsfa/manylinux_2_28_x86_64-for-codac' , os: ubuntu-latest , shell: bash, arch: x86_64 , bitness: 64, runtime: manylinux_2_28, min_python: '3.11', max_python: '3.12', desc: 'CentOS manylinux_2_28 x86_64 Python 3.11-3.12' }
- { img: 'lebarsfa/manylinux_2_28_x86_64-for-codac' , os: ubuntu-latest , shell: bash, arch: x86_64 , bitness: 64, runtime: manylinux_2_28, min_python: ' ', max_python: '3.10', desc: 'CentOS manylinux_2_28 x86_64 Python <=3.10' }
- { img: 'lebarsfa/manylinux_2_28_aarch64-for-codac', os: ubuntu-24.04-arm , shell: bash, arch: aarch64, bitness: 64, runtime: manylinux_2_28, min_python: '3.14', max_python: ' ', docker_flags: '--platform linux/arm64', desc: 'CentOS manylinux_2_28 aarch64 Python >=3.14' }
- { img: 'lebarsfa/manylinux_2_28_aarch64-for-codac', os: ubuntu-24.04-arm , shell: bash, arch: aarch64, bitness: 64, runtime: manylinux_2_28, min_python: '3.15', max_python: ' ', docker_flags: '--platform linux/arm64', desc: 'CentOS manylinux_2_28 aarch64 Python >=3.15' }
- { img: 'lebarsfa/manylinux_2_28_aarch64-for-codac', os: ubuntu-24.04-arm , shell: bash, arch: aarch64, bitness: 64, runtime: manylinux_2_28, min_python: '3.14', max_python: '3.14', docker_flags: '--platform linux/arm64', desc: 'CentOS manylinux_2_28 aarch64 Python 3.14' }
- { img: 'lebarsfa/manylinux_2_28_aarch64-for-codac', os: ubuntu-24.04-arm , shell: bash, arch: aarch64, bitness: 64, runtime: manylinux_2_28, min_python: '3.13', max_python: '3.13', docker_flags: '--platform linux/arm64', desc: 'CentOS manylinux_2_28 aarch64 Python 3.13' }
- { img: 'lebarsfa/manylinux_2_28_aarch64-for-codac', os: ubuntu-24.04-arm , shell: bash, arch: aarch64, bitness: 64, runtime: manylinux_2_28, min_python: '3.11', max_python: '3.12', docker_flags: '--platform linux/arm64', desc: 'CentOS manylinux_2_28 aarch64 Python 3.11-3.12' }
- { img: 'lebarsfa/manylinux_2_28_aarch64-for-codac', os: ubuntu-24.04-arm , shell: bash, arch: aarch64, bitness: 64, runtime: manylinux_2_28, min_python: ' ', max_python: '3.10', docker_flags: '--platform linux/arm64', desc: 'CentOS manylinux_2_28 aarch64 Python <=3.10' }
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dockermatrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ jobs:
# if: (matrix.cfg.arch!='amd64')&&(matrix.cfg.arch!='x86_64')&&(matrix.cfg.arch!='i386')
- run: |
docker run ${{ matrix.cfg.docker_flags }} -i -v "${PWD}/..:${PWD}/.." ${{ matrix.cfg.img }} /bin/bash -c "uname -a ; cat /etc/os-release ; lsb_release -a ; cd ${PWD} && pwd && \
git config --global --add safe.directory ${PWD} && \
git config --global --add safe.directory ${PWD} && git config --global --add safe.directory ${PWD}/.git || true && \
if [ \"${{ matrix.cfg.deb }}\" = \"true\" ]; then \
sudo sh -c 'echo \"deb [trusted=yes] https://webperso.ensta.fr/packages/\$(if [ -z \"\$(. /etc/os-release && echo \$UBUNTU_CODENAME)\" ]; then echo debian/\$(. /etc/os-release && echo \$VERSION_CODENAME); else echo ubuntu/\$(. /etc/os-release && echo \$UBUNTU_CODENAME); fi) ./\" > /etc/apt/sources.list.d/ensta-bretagne.list' && \
#sudo apt-get -q update ; sudo apt-get -y install libeigen3-dev catch2 dpkg-dev || true && \\
Expand Down
63 changes: 11 additions & 52 deletions .github/workflows/macosmatrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,12 @@ jobs:
fail-fast: false
matrix:
cfg:
- { os: macos-14 , shell: bash, arch: arm64 , runtime: sonoma , cmake_flags: '-fPIC', trgt: '11.0' , cpcfg: '-macosx_11_0_arm64' , py_v_maj: 3, py_v_min: 14, desc: 'macOS Sonoma Python 3.14 arm64' }
- { os: macos-14 , shell: bash, arch: arm64 , runtime: sonoma , cmake_flags: '-fPIC', trgt: '11.0' , cpcfg: '-macosx_11_0_arm64' , py_v_maj: 3, py_v_min: 13, desc: 'macOS Sonoma Python 3.13 arm64' }
- { os: macos-14 , shell: bash, arch: arm64 , runtime: sonoma , cmake_flags: '-fPIC', trgt: '11.0' , cpcfg: '-macosx_11_0_arm64' , py_v_maj: 3, py_v_min: 12, desc: 'macOS Sonoma Python 3.12 arm64' }
- { os: macos-14 , shell: bash, arch: arm64 , runtime: sonoma , cmake_flags: '-fPIC', trgt: '11.0' , cpcfg: '-macosx_11_0_arm64' , py_v_maj: 3, py_v_min: 11, desc: 'macOS Sonoma Python 3.11 arm64' }
- { os: macos-15 , shell: bash, arch: arm64 , runtime: sonoma , cmake_flags: '-fPIC', trgt: '11.0' , cpcfg: '-macosx_11_0_arm64' , py_v_maj: 3, py_v_min: 15, desc: 'macOS Sequoia Python 3.15 arm64' }
- { os: macos-15 , shell: bash, arch: arm64 , runtime: sonoma , cmake_flags: '-fPIC', trgt: '11.0' , cpcfg: '-macosx_11_0_arm64' , py_v_maj: 3, py_v_min: 14, desc: 'macOS Sequoia Python 3.14 arm64' }
- { os: macos-15 , shell: bash, arch: arm64 , runtime: sonoma , cmake_flags: '-fPIC', trgt: '11.0' , cpcfg: '-macosx_11_0_arm64' , py_v_maj: 3, py_v_min: 13, desc: 'macOS Sequoia Python 3.13 arm64' }
- { os: macos-15 , shell: bash, arch: arm64 , runtime: sonoma , cmake_flags: '-fPIC', trgt: '11.0' , cpcfg: '-macosx_11_0_arm64' , py_v_maj: 3, py_v_min: 12, desc: 'macOS Sequoia Python 3.12 arm64' }
- { os: macos-15 , shell: bash, arch: arm64 , runtime: sonoma , cmake_flags: '-fPIC', trgt: '11.0' , cpcfg: '-macosx_11_0_arm64' , py_v_maj: 3, py_v_min: 11, desc: 'macOS Sequoia Python 3.11 arm64' }
- { os: macos-15-intel , shell: bash, arch: x86_64 , runtime: sequoia , cmake_flags: '-fPIC', trgt: '10.16', cpcfg: '-macosx_10_16_x86_64', py_v_maj: 3, py_v_min: 15, desc: 'macOS Sequoia Python 3.15 x86_64' }
- { os: macos-15-intel , shell: bash, arch: x86_64 , runtime: sequoia , cmake_flags: '-fPIC', trgt: '10.16', cpcfg: '-macosx_10_16_x86_64', py_v_maj: 3, py_v_min: 14, desc: 'macOS Sequoia Python 3.14 x86_64' }
- { os: macos-15-intel , shell: bash, arch: x86_64 , runtime: sequoia , cmake_flags: '-fPIC', trgt: '10.16', cpcfg: '-macosx_10_16_x86_64', py_v_maj: 3, py_v_min: 13, desc: 'macOS Sequoia Python 3.13 x86_64' }
- { os: macos-15-intel , shell: bash, arch: x86_64 , runtime: sequoia , cmake_flags: '-fPIC', trgt: '10.16', cpcfg: '-macosx_10_16_x86_64', py_v_maj: 3, py_v_min: 12, desc: 'macOS Sequoia Python 3.12 x86_64' }
Expand Down Expand Up @@ -54,54 +56,11 @@ jobs:
# if: runner.os=='macOS'
- run: brew install catch2 # Issues with binary packages when cross-compiling...
if: (runner.os=='macOS')&&(matrix.cfg.cross!=true)
# Doxygen 1.18.0 crashes when parsing Codac headers on macOS.
# Doxygen 1.16.1 ARM64 binaries require macOS 15: build from source on macOS 14.
- name: Install Doxygen 1.16.1
shell: bash
env:
GH_TOKEN: ${{ github.token }}
run: |
set -euo pipefail
case "${{ matrix.cfg.arch }}" in
arm64) archive="doxygen-1.16.1.src.tar.gz" ;;
x86_64) archive="doxygen-1.16.1-mac-intel.zip" ;;
*) echo "Unsupported architecture" >&2; exit 1 ;;
esac
tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT

# Verify the archive using its official GitHub release SHA-256 digest.
expected_sha="$(
curl -fsSL --retry 3 \
-H "Authorization: Bearer ${GH_TOKEN}" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/doxygen/doxygen/releases/tags/Release_1_16_1 \
| python3 -c 'import json,sys; a=next(x for x in json.load(sys.stdin)["assets"] if x["name"]==sys.argv[1]); d=a["digest"]; assert d and d.startswith("sha256:") and len(d)==71; print(d[7:])' "$archive"
)"
curl -fsSL --retry 3 \
"https://github.com/doxygen/doxygen/releases/download/Release_1_16_1/${archive}" \
-o "$tmpdir/$archive"
echo "${expected_sha} ${tmpdir}/${archive}" | shasum -a 256 -c

if [[ "${{ matrix.cfg.arch }}" == arm64 ]]; then
brew install ninja flex bison
mkdir "$tmpdir/src"
tar -xzf "$tmpdir/$archive" -C "$tmpdir/src"
export PATH="$(brew --prefix flex)/bin:$(brew --prefix bison)/bin:$PATH"
cmake -G Ninja -S "$tmpdir/src/doxygen-1.16.1" -B "$tmpdir/build" \
-DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \
-Dbuild_wizard=OFF -Dbuild_doc=OFF -Duse_libclang=OFF
cmake --build "$tmpdir/build" --target doxygen --parallel 4
doxygen_bin="$tmpdir/build/bin/doxygen"
else
unzip -q "$tmpdir/$archive" -d "$tmpdir/unpacked"
doxygen_bin="$(find "$tmpdir/unpacked" -type f -name doxygen -print -quit)"
fi

mkdir -p "$RUNNER_TEMP/codac-doxygen-bin"
install -m 755 "$doxygen_bin" "$RUNNER_TEMP/codac-doxygen-bin/doxygen"
echo "$RUNNER_TEMP/codac-doxygen-bin" >> "$GITHUB_PATH"
"$RUNNER_TEMP/codac-doxygen-bin/doxygen" --version
# Doxygen 1.18.0 crashes when parsing Codac headers on macOS.
- run: |
wget https://github.com/lebarsfa/xbrew/releases/latest/download/xbrew.sh --no-check-certificate -nv ; sudo mv -f xbrew.sh /usr/local/bin/xbrew ; sudo chmod +x /usr/local/bin/xbrew
xbrew reinstall https://github.com/Homebrew/homebrew-core/raw/1d8f87380f143b838b0d6a10068e7488db79ba5d/Formula/d/doxygen.rb ; brew pin --formula doxygen
if: runner.os=='macOS'
- run: brew install graphviz ; python -m pip install --upgrade pip ; pip install --upgrade wheel setuptools sphinx breathe sphinx_rtd_theme sphinx-tabs sphinx-issues sphinx-reredirects furo sphinx-math-dollar sphinx_togglebutton sympy
if: runner.os=='macOS'
- run: |
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/unixmatrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ jobs:
fail-fast: false
matrix:
cfg:
- { os: windows-11-vs2026-arm, shell: cmd , arch: arm64 , bitness: 64, runtime: vc18 , cmake_params: '-G "Visual Studio 18" -T v145 -A arm64', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2026 arm64' }
- { os: windows-11-arm , shell: cmd , arch: arm64 , bitness: 64, runtime: vc18 , cmake_params: '-G "Visual Studio 18" -T v145 -A arm64', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2026 arm64' }
- { os: windows-2025-vs2026 , shell: cmd , arch: x64 , bitness: 64, runtime: vc18 , cmake_params: '-G "Visual Studio 18" -T v145 -A x64' , cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2026 x64' }
- { os: windows-2025-vs2026 , shell: cmd , arch: x86 , bitness: 32, runtime: vc18 , cmake_params: '-G "Visual Studio 18" -T v145 -A Win32', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', choco_flags: '--x86', desc: 'Windows Visual Studio 2026 x86' }
- { os: windows-11-arm , shell: cmd , arch: arm64 , bitness: 64, runtime: vc17 , cmake_params: '-G "Visual Studio 18 2026" -T v143 -A arm64', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2026 arm64 (v143)' }
- { os: windows-11-arm , shell: cmd , arch: arm64 , bitness: 64, runtime: vc17 , cmake_params: '-G "Visual Studio 18" -T v143 -A arm64', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2022 arm64' }
- { os: windows-2022 , shell: cmd , arch: x64 , bitness: 64, runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A x64' , cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', desc: 'Windows Visual Studio 2022 x64' }
- { os: windows-2022 , shell: cmd , arch: x86 , bitness: 32, runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A Win32', cmake_flags: ' /MP4 /wd4267 /wd4244 /wd4305 /wd4996', test_config: 'Release/', choco_flags: '--x86', desc: 'Windows Visual Studio 2022 x86' }
# Problems related to C++20 for Visual Studio 2019 and earlier?
Expand Down Expand Up @@ -62,12 +62,12 @@ jobs:
- { os: ubuntu-24.04-arm , shell: bash, arch: arm64 , bitness: 64, runtime: noble , cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 24.04 arm64' }
- { os: ubuntu-22.04 , shell: bash, arch: amd64 , bitness: 64, runtime: jammy , cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 22.04 amd64' }
- { os: ubuntu-22.04-arm , shell: bash, arch: arm64 , bitness: 64, runtime: jammy , cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 22.04 arm64' }
- { os: xcode-27 , shell: bash, arch: arm64 , bitness: 64, runtime: goldengate , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=arm64' , cmake_flags: '-fPIC', desc: 'macOS Golden Gate arm64' }
- { os: xcode-27 , shell: bash, arch: x86_64 , bitness: 64, runtime: goldengate , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=x86_64 -D CMAKE_OSX_DEPLOYMENT_TARGET=27.0', cmake_flags: '-fPIC', cross: true, desc: 'macOS Golden Gate x86_64 (cross)' }
- { os: macos-26 , shell: bash, arch: arm64 , bitness: 64, runtime: tahoe , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=arm64' , cmake_flags: '-fPIC', desc: 'macOS Tahoe arm64' }
- { os: macos-26 , shell: bash, arch: x86_64 , bitness: 64, runtime: tahoe , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=x86_64 -D CMAKE_OSX_DEPLOYMENT_TARGET=26.0', cmake_flags: '-fPIC', cross: true, desc: 'macOS Tahoe x86_64 (cross)' }
- { os: macos-26-intel , shell: bash, arch: x86_64 , bitness: 64, runtime: tahoe , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=x86_64', cmake_flags: '-fPIC', desc: 'macOS Tahoe x86_64' }
- { os: macos-15 , shell: bash, arch: arm64 , bitness: 64, runtime: sequoia , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=arm64' , cmake_flags: '-fPIC', desc: 'macOS Sequoia arm64' }
- { os: macos-15-intel , shell: bash, arch: x86_64 , bitness: 64, runtime: sequoia , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=x86_64', cmake_flags: '-fPIC', desc: 'macOS Sequoia x86_64' }
- { os: macos-14 , shell: bash, arch: arm64 , bitness: 64, runtime: sonoma , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=arm64' , cmake_flags: '-fPIC', desc: 'macOS Sonoma arm64' }
- { os: macos-14 , shell: bash, arch: x86_64 , bitness: 64, runtime: sonoma , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=x86_64 -D CMAKE_OSX_DEPLOYMENT_TARGET=14.0', cmake_flags: '-fPIC', cross: true, desc: 'macOS Sonoma x86_64 (cross)' }
name: ${{ matrix.cfg.desc }}
steps:
- uses: actions/checkout@v7
Expand Down
Loading
Loading