Repository navigation
sparc float16: use a portable version to avoid compilation errors #5184
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches-ignore: | |
| - 'dependabot/**' | |
| pull_request: | |
| branches: | |
| - 'master' | |
| permissions: {} | |
| concurrency: | |
| group: build-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| checkinstall: | |
| runs-on: ubuntu-slim | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 2 | |
| persist-credentials: false | |
| - name: Install APT Dependencies | |
| run: | | |
| sudo apt-get update && sudo apt-get install -y --no-install-recommends ninja-build | |
| pipx install meson==1.3.2 | |
| - run: | | |
| meson setup build --prefix "$PWD/install" -Dtests=false | |
| meson install -C build --quiet | |
| diff <(find simde/ -type f -name "*.h") <(cd install/include/; find simde -type f -name "*.h" ) | |
| formatting: | |
| runs-on: ubuntu-slim | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 2 | |
| persist-credentials: false | |
| - name: Install pcre2grep | |
| run: sudo apt-get update && sudo apt-get install -y --no-install-recommends pcre2-utils | |
| - name: Check formatting | |
| run: .github/workflows/formatting.bash | |
| conditional-inclusion: | |
| runs-on: ubuntu-slim | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 2 | |
| persist-credentials: false | |
| - name: Install python3 | |
| run: sudo apt-get update && sudo apt-get install -y python3 | |
| - name: Check conditional inclusion for LoongArch | |
| run: test/check-loongarch-guards.py | |
| x86: | |
| runs-on: ubuntu-26.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| isax: | |
| - -DSIMDE_NATURAL_VECTOR_SIZE=256 -march=x86-64-v3 -mavx512bw -mavx512vl | |
| # https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels | |
| - -march=x86-64 -maes -mpclmul # the x86-64 baseline is CMOV, CX8, FPU, FXSR, MMX, OSFXSR, SCE, SSE, SSE2 | |
| - -march=x86-64-v2 # CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4_1, SSE4_2, SSSE3 | |
| - -march=x86-64-v3 # AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, OSXSAVE | |
| - -march=x86-64-v4 # AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL a.k.a. skylake+ (including zen4) | |
| include: | |
| - target: tgl | |
| - isax: -march=x86-64-v4 -mcx16 -mxsave -mpclmul -mfsgsbase -mrdrnd -mhle -mrdseed -maes -mclflushopt -mxsavec -mxsaves -msgx -mpku -msha -mrdpid -mavx512vpopcntdq -mavx512ifma -mavx512vbmi -mavx512vnni -mavx512vbmi2 -mavx512bitalg -mvpclmulqdq -mgfni -mvaes # icelake | |
| target: icl | |
| - isax: -march=x86-64-v4 -mcx16 -mxsave -mpclmul -mfsgsbase -mrdrnd -mhle -mrdseed -maes -mclflushopt -mxsavec -mxsaves -msgx -mpku -msha -mrdpid -mavx512vpopcntdq -mavx512ifma -mavx512vbmi -mavx512vnni -mavx512vbmi2 -mavx512bitalg -mvpclmulqdq -mgfni -mvaes -mpconfig -mwbnoinvd -mclwb -mmovdiri -mmovdir64b -menqcmd -mcldemote -mptwrite -mwaitpkg -mserialize -mtsxldtrk -muintr -mavxvnni -mavx512fp16 -mavx512bf16 # sapphire rapids | |
| target: spr | |
| env: | |
| CFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }} | |
| CXXFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }} | |
| INTEL_TARGET: ${{ matrix.target }} | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - name: CPU Information | |
| run: cat /proc/cpuinfo | |
| - name: Install APT Dependencies | |
| run: | | |
| sudo add-apt-repository ppa:ccache-backports/ccache-backports-ppa | |
| sudo apt-get install -y --no-install-recommends ninja-build pipx \ | |
| gcc-15 g++-15 ccache | |
| sudo apt-get satisfy -y 'binutils (>= 2.45)' | |
| sudo apt-get purge -y gcc g++ | |
| sudo ln -s /usr/bin/gcc-15 /usr/bin/gcc | |
| sudo ln -s /usr/bin/g++-15 /usr/bin/g++ | |
| pipx install meson==1.3.2 | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ github.job }}-${{ matrix.isax }} | |
| verbose: 2 | |
| - name: add ccache to the build path | |
| run: | | |
| export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
| - name: Configure | |
| run: meson setup build || (cat build/meson-logs/meson-log.txt ; false) | |
| - name: Test run native? | |
| run: | | |
| test/check-flags.sh query && echo Tests with "$CFLAGS" will be run natively | |
| test/check-flags.sh query || echo Tests with "$CFLAGS" will be run using SDE | |
| - name: Build | |
| run: ninja -C build -v | |
| - name: Test | |
| run: | | |
| # shellcheck disable=SC2046 | |
| meson test -C build --print-errorlogs --wrapper "${GITHUB_WORKSPACE}/test/check-flags.sh sde" $(meson test -C build --list | grep -v emul) | |
| x86-xop: | |
| runs-on: ubuntu-26.04 | |
| strategy: | |
| fail-fast: false | |
| env: | |
| CFLAGS: -Wall -Wextra -Werror -march=bdver2 | |
| CXXFLAGS: -Wall -Wextra -Werror -march=bdver2 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - name: CPU Information | |
| run: cat /proc/cpuinfo | |
| - name: Install APT Dependencies | |
| run: | | |
| sudo add-apt-repository ppa:ccache-backports/ccache-backports-ppa | |
| sudo apt-get install -y --no-install-recommends ninja-build pipx \ | |
| g++-15 gcc-15 qemu-user-binfmt-hwe ccache | |
| sudo apt-get satisfy -y 'binutils (>= 2.45)' | |
| sudo apt-get purge -y gcc g++ | |
| sudo ln -s /usr/bin/gcc-15 /usr/bin/gcc | |
| sudo ln -s /usr/bin/g++-15 /usr/bin/g++ | |
| pipx install meson==1.3.2 | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ github.job }} | |
| verbose: 2 | |
| - name: add ccache to the build path | |
| run: | | |
| export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
| - name: Configure | |
| run: meson setup build || (cat build/meson-logs/meson-log.txt ; false) | |
| - name: Build | |
| run: ninja -C build -v | |
| # can't test until we find a combination of `gcc -march=` and `qemu -cpu` that both enable XOP and allows qemu to test it | |
| # - name: Test | |
| # run: meson test -C build --print-errorlogs --wrapper "qemu-amd64-static -cpu Opteron_G5-v1" | |
| emscripten: | |
| runs-on: ubuntu-26.04 | |
| strategy: | |
| matrix: | |
| variant: | |
| - "32" | |
| - "64" | |
| - "32-relaxed" | |
| - "64-relaxed" | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - name: Install APT Dependencies | |
| run: | | |
| sudo add-apt-repository ppa:ccache-backports/ccache-backports-ppa | |
| sudo apt-get install -y --no-install-recommends ninja-build pipx ccache | |
| pipx install meson==1.3.2 | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ github.job }} | |
| verbose: 2 | |
| - name: Install emscripten | |
| run: | | |
| git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk | |
| cd /opt/emsdk | |
| ./emsdk install latest # FIXME, revert to tot | |
| ./emsdk activate latest # FIXME, revert to tot | |
| source emsdk_env.sh | |
| - name: Install v8 | |
| run: | | |
| sudo npm install jsvu -g | |
| jsvu --os=linux64 --engines=v8 | |
| sudo ln -s "$HOME/.jsvu/bin/v8" /usr/bin/v8 | |
| ls -l /usr/bin/v8 | |
| ls -l ~/.jsvu || true | |
| /usr/bin/v8 --help | |
| - name: Configure | |
| run: meson setup build --optimization 2 --cross-file docker/cross-files/emscripten${{ matrix.variant }}.cross | |
| - name: Build | |
| run: meson compile -C build --verbose | |
| - name: Test | |
| run: meson test -C build --print-errorlogs | |
| native-aliases: | |
| runs-on: ubuntu-26.04 | |
| env: | |
| CFLAGS: -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING -Wall -Wextra -Werror -pedantic | |
| CXXFLAGS: -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING -Wall -Wextra -Werror -pedantic | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - id: cpu | |
| name: CPU Information | |
| run: cat /proc/cpuinfo | |
| - name: Install APT Dependencies | |
| run: | | |
| sudo add-apt-repository ppa:ccache-backports/ccache-backports-ppa | |
| sudo apt-get -y --no-install-recommends install libxml2-utils \ | |
| ninja-build pipx ccache gcc-15 g++-15 | |
| sudo apt-get satisfy -y 'binutils (>= 2.45)' | |
| sudo apt-get purge -y gcc g++ | |
| sudo ln -s /usr/bin/gcc-15 /usr/bin/gcc | |
| sudo ln -s /usr/bin/g++-15 /usr/bin/g++ | |
| pipx install meson==1.3.2 | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ github.job }} | |
| verbose: 2 | |
| - name: add ccache to the build path | |
| run: | | |
| export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
| - name: Convert | |
| run: ./test/native-aliases.sh | |
| - name: Configure | |
| run: meson setup build | |
| - name: Build | |
| run: ninja -C build -v | |
| - name: Test | |
| run: ninja -C build -v test | |
| sleef: | |
| runs-on: ubuntu-26.04 | |
| env: | |
| CFLAGS: -march=native -Wall -Wextra -Werror | |
| CXXFLAGS: -march=native -Wall -Wextra -Werror | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - id: cpu | |
| name: CPU Information | |
| run: | | |
| cat /proc/cpuinfo | |
| - name: Install APT Dependencies | |
| run: | | |
| sudo add-apt-repository ppa:ccache-backports/ccache-backports-ppa | |
| sudo apt-get install -y --no-install-recommends ninja-build libsleef-dev \ | |
| pipx ccache gcc-15 g++-15 | |
| sudo apt-get satisfy -y 'binutils (>= 2.45)' | |
| sudo apt-get purge -y gcc g++ | |
| sudo ln -s /usr/bin/gcc-15 /usr/bin/gcc | |
| sudo ln -s /usr/bin/g++-15 /usr/bin/g++ | |
| pipx install meson==1.3.2 | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ github.job }} | |
| verbose: 2 | |
| - name: add ccache to the build path | |
| run: | | |
| export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
| - name: Configure | |
| run: meson setup build -Dsleef=enabled | |
| - name: Build | |
| run: ninja -C build -v | |
| - name: Test | |
| run: | | |
| # shellcheck disable=SC2046 | |
| meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul) | |
| gcc: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - version: 9 | |
| distro: ubuntu-24.04 | |
| - version: 10 | |
| distro: ubuntu-24.04 | |
| - version: 10 | |
| distro: ubuntu-24.04 | |
| arch_flags: -ffast-math | |
| - version: 11 | |
| distro: ubuntu-26.04 | |
| - version: 11 | |
| distro: ubuntu-26.04 | |
| arch_flags: -ffast-math | |
| - version: 11 | |
| distro: ubuntu-26.04-arm | |
| - version: 11 | |
| distro: ubuntu-26.04-arm | |
| plain: true | |
| - version: 12 | |
| distro: ubuntu-26.04 | |
| - version: 12 | |
| distro: ubuntu-26.04 | |
| arch_flags: -ffast-math | |
| - version: 12 | |
| distro: ubuntu-26.04-arm | |
| - version: 13 | |
| distro: ubuntu-26.04 | |
| - version: 13 | |
| distro: ubuntu-26.04 | |
| arch_flags: -ffast-math | |
| - version: 13 | |
| distro: ubuntu-26.04-arm | |
| - version: 14 | |
| distro: ubuntu-26.04 | |
| - version: 14 | |
| distro: ubuntu-26.04 | |
| arch_flags: -ffast-math | |
| - version: 14 | |
| distro: ubuntu-26.04-arm | |
| - version: 14 | |
| distro: ubuntu-24.04-riscv | |
| plain: true | |
| - version: 14 | |
| distro: ubuntu-24.04-riscv | |
| plain: true | |
| arch_flags: -O3 | |
| - version: 15 | |
| distro: ubuntu-26.04 | |
| - version: 15 | |
| distro: ubuntu-26.04 | |
| arch_flags: -ffast-math | |
| - version: 15 | |
| distro: ubuntu-26.04-arm | |
| - version: 15 | |
| distro: ubuntu-26.04-arm | |
| plain: true | |
| - version: 15 # plain armhf | |
| distro: ubuntu-24.04-arm | |
| gcc: arm-linux-gnueabihf | |
| plain: true | |
| - version: 15 # armv7 | |
| distro: ubuntu-24.04-arm | |
| gcc: arm-linux-gnueabihf | |
| arch_flags: -march=armv7-a+simd+neon-fp16 | |
| plain: true | |
| - version: 15 # armv8 32-bit | |
| distro: ubuntu-24.04-arm | |
| gcc: arm-linux-gnueabihf | |
| arch_flags: -mcpu=cortex-a32 -mfpu=crypto-neon-fp-armv8 | |
| plain: true | |
| runs-on: ${{ matrix.distro }} | |
| env: | |
| CFLAGS: ${{ matrix.arch_flags }} ${{ case( | |
| matrix.plain == true, '-Wall -Wextra -Werror', | |
| '-march=native -Wall -Wextra -Werror') }} | |
| CXXFLAGS: ${{ matrix.arch_flags }} ${{ case( | |
| matrix.plain == true, '-Wall -Wextra -Werror', | |
| '-march=native -Wall -Wextra -Werror') }} | |
| CCBIN: ${{ | |
| case( | |
| matrix.gcc == '', format('gcc-{0}', matrix.version), | |
| format('{0}-gcc-{1}', matrix.gcc, matrix.version) | |
| ) }} | |
| CXXBIN: ${{ | |
| case( | |
| matrix.gcc == '', format('g++-{0}', matrix.version), | |
| format('{0}-g++-{1}', matrix.gcc, matrix.version) | |
| ) }} | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - id: cpu | |
| name: CPU Information | |
| run: | | |
| cat /proc/cpuinfo | |
| - name: enable armhf | |
| if: ${{ contains(matrix.gcc,'arm-linux-gnueabihf') }} | |
| run: sudo dpkg --add-architecture armhf && sudo apt-get update && sudo apt-get install -y libstdc++6:armhf | |
| - if: ${{ contains(matrix.distro, 'ubuntu-24.04') && ( matrix.version == '15' )}} | |
| run: sudo add-apt-repository ppa:daawesomep/toolchain-backports-noble | |
| - name: Install APT Dependencies | |
| run: | | |
| sudo add-apt-repository ppa:ccache-backports/ccache-backports-ppa | |
| sudo apt-get -y install --no-install-recommends pipx ninja-build \ | |
| ccache gcc-${{ case(matrix.gcc == '', matrix.version, format('{0}-{1}', matrix.version, matrix.gcc)) }} \ | |
| g++-${{ case(matrix.gcc == '', matrix.version, format('{0}-{1}', matrix.version, matrix.gcc)) }} | |
| sudo apt-get -y purge g++ gcc | |
| pipx install meson==1.3.2 | |
| - if: ${{ matrix.version == '15' }} | |
| run: sudo apt-get satisfy -y 'binutils (>= 2.45)' | |
| - name: reformat arch flags | |
| id: cache-key-hasher | |
| run: echo hash="$(echo ${{ matrix.version }}-${{ matrix.distro }}-"${CFLAGS}" | sha1sum -)" >> "$GITHUB_OUTPUT" | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ github.job }}-${{ steps.cache-key-hasher.outputs.hash }} | |
| verbose: 2 | |
| - name: add ccache to the build path | |
| run: | | |
| export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
| sudo ln -s "/usr/bin/${CCBIN}" /usr/bin/gcc | |
| sudo ln -s "/usr/bin/${CXXBIN}" /usr/bin/g++ | |
| - name: Configure | |
| run: meson setup build || (cat build/meson-logs/meson-log.txt ; false) | |
| - name: Build | |
| run: meson compile -C build --verbose | |
| - name: Test | |
| run: | | |
| # shellcheck disable=SC2046 | |
| meson test -C build --print-errorlogs | |
| gcc-qemu: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - version: 14 | |
| cross: armel | |
| arch_gnu_abi: eabi | |
| arch_deb: armel | |
| arch_gnu: arm | |
| distro: ubuntu-26.04 | |
| - version: 15 | |
| cross: s390x | |
| arch_gnu: s390x | |
| arch_deb: s390x | |
| distro: ubuntu-26.04-arm | |
| - version: 14 | |
| cross: power9 | |
| arch_gnu: powerpc64le | |
| arch_deb: ppc64el | |
| distro: ubuntu-26.04-arm | |
| - version: 14 | |
| cross: power7 | |
| arch_gnu: powerpc64le | |
| arch_deb: ppc64el | |
| distro: ubuntu-26.04-arm | |
| - version: 14 | |
| cross: loongarch64 | |
| arch_gnu: loongarch64 | |
| arch_deb: loong64 | |
| distro: ubuntu-26.04-arm | |
| - extra: -fastmath | |
| version: 14 | |
| cross: loongarch64 | |
| arch_gnu: loongarch64 | |
| arch_deb: loong64 | |
| distro: ubuntu-26.04-arm | |
| - version: 14 | |
| cross: loongarch64-lsx-only | |
| arch_gnu: loongarch64 | |
| arch_deb: loong64 | |
| distro: ubuntu-26.04-arm | |
| # - version: 14 | |
| # cross: mips64el | |
| # arch_gnu: mips64el | |
| # arch_gnu_abi: abi64 | |
| # arch_deb: mips64el | |
| # distro: ubuntu-26.04-arm | |
| runs-on: ${{ matrix.distro }} | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - name: CPU Information | |
| run: cat /proc/cpuinfo | |
| - name: Install APT Dependencies | |
| run: | | |
| sudo add-apt-repository ppa:ccache-backports/ccache-backports-ppa | |
| sudo apt-get -y --no-install-recommends install ccache ninja-build \ | |
| gcc-${{ matrix.version }}-${{ matrix.arch_gnu }}-linux-gnu${{ matrix.arch_gnu_abi }} \ | |
| g++-${{ matrix.version }}-${{ matrix.arch_gnu }}-linux-gnu${{ matrix.arch_gnu_abi }} \ | |
| binfmt-support qemu-user-binfmt-hwe pipx libc6-${{ matrix.arch_deb }}-cross | |
| pipx install meson==1.3.2 | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ github.job }}-${{ matrix.version}}${{ matrix.extra }}-${{ matrix.distro }}-${{ matrix.cross }} | |
| verbose: 2 | |
| - name: add ccache to the build path | |
| run: | | |
| export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
| - name: Configure | |
| run: meson setup --cross-file=docker/cross-files/${{ matrix.cross }}-gcc-${{ matrix.version }}${{ matrix.extra}}-ccache.cross build | |
| - name: Build | |
| run: ninja -C build -v | |
| - name: Test | |
| run: | | |
| # shellcheck disable=SC2046 | |
| meson test -C build --print-errorlogs | |
| clang17-qemu-rvv: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - version: 17 # not yet passing with clang 18.1.3 | |
| cross: riscv64+rvv_vlen128_elen64 | |
| arch_gnu: riscv64 | |
| arch_deb: riscv64 | |
| distro: ubuntu-24.04-arm | |
| - version: 17 # not yet passing with clang 18.1.3 | |
| cross: riscv64+rvv_vlen256_elen64 | |
| arch_gnu: riscv64 | |
| arch_deb: riscv64 | |
| distro: ubuntu-24.04-arm | |
| - version: 17 # not yet passing with clang 18.1.3 | |
| cross: riscv64+rvv_vlen512_elen64 | |
| arch_gnu: riscv64 | |
| arch_deb: riscv64 | |
| distro: ubuntu-24.04-arm | |
| runs-on: ${{ matrix.distro }} | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - name: CPU Information | |
| run: cat /proc/cpuinfo | |
| - name: Install APT Dependencies | |
| run: | | |
| sudo add-apt-repository ppa:ccache-backports/ccache-backports-ppa | |
| sudo apt-get install -y --no-install-recommends ccache ninja-build pkg-config \ | |
| qemu-user-static clang-${{ matrix.version }} binfmt-support \ | |
| libc6-${{ matrix.arch_deb }}-cross meson llvm-${{ matrix.version }} \ | |
| libstdc++-12-dev-${{ matrix.arch_deb }}-cross \ | |
| binutils-${{ matrix.arch_gnu }}-linux-gnu | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ github.job }}-${{ matrix.distro }}-${{ matrix.cross }} | |
| verbose: 2 | |
| - name: add ccache to the build path | |
| run: | | |
| export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
| - name: Configure | |
| run: | | |
| meson setup --cross-file=docker/cross-files/${{ matrix.cross }}-clang-${{ matrix.version }}-ccache.cross build \ | |
| || (cat build/meson-logs/meson-log.txt ; false) | |
| - name: Build | |
| run: ninja -C build -v | |
| - name: Test | |
| run: | | |
| # shellcheck disable=SC2046 | |
| meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul) | |
| clang18-qemu-rvv: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - version: 18 | |
| cross: riscv64+rvv_vlen128_elen64_zvfh | |
| arch_gnu: riscv64 | |
| arch_deb: riscv64 | |
| distro: ubuntu-24.04-arm | |
| - version: 18 | |
| cross: riscv64+rvv_vlen256_elen64_zvfh | |
| arch_gnu: riscv64 | |
| arch_deb: riscv64 | |
| distro: ubuntu-24.04-arm | |
| - version: 18 | |
| cross: riscv64+rvv_vlen512_elen64_zvfh | |
| arch_gnu: riscv64 | |
| arch_deb: riscv64 | |
| distro: ubuntu-24.04-arm | |
| runs-on: ${{ matrix.distro }} | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - name: CPU Information | |
| run: cat /proc/cpuinfo | |
| - name: Install APT Dependencies | |
| run: | | |
| sudo add-apt-repository ppa:ccache-backports/ccache-backports-ppa | |
| sudo apt-get install -y --no-install-recommends \ | |
| ninja-build pkg-config qemu-user-static clang-${{ matrix.version }} \ | |
| binfmt-support libc6-${{ matrix.arch_deb }}-cross meson \ | |
| libstdc++-12-dev-${{ matrix.arch_deb }}-cross \ | |
| binutils-${{ matrix.arch_gnu }}-linux-gnu ccache | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ github.job }}-${{ matrix.distro }}-${{ matrix.cross }} | |
| verbose: 2 | |
| - name: add ccache to the build path | |
| run: | | |
| export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
| - name: Configure | |
| run: | | |
| meson setup --cross-file=docker/cross-files/${{ matrix.cross }}-clang-${{ matrix.version }}-ccache.cross build \ | |
| || (cat build/meson-logs/meson-log.txt ; false) | |
| - name: Build | |
| run: ninja -C build -v | |
| - name: Test | |
| run: | | |
| # shellcheck disable=SC2046 | |
| meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul) | |
| clang-qemu: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # - version: 18 | |
| # cross: mips64el | |
| # arch_deb: mips64el | |
| # arch_gnu: mips64el | |
| # arch_gnu_abi: abi64 | |
| # distro: ubuntu-24.04-arm | |
| - version: 23 | |
| cross: armel | |
| arch_gnu_abi: eabi | |
| arch_deb: armel | |
| arch_gnu: arm | |
| distro: ubuntu-26.04-arm | |
| - version: 23 | |
| cross: riscv64 | |
| arch_gnu: riscv64 | |
| arch_deb: riscv64 | |
| distro: ubuntu-26.04-arm | |
| - version: 20 | |
| cross: s390x | |
| arch_gnu: s390x | |
| arch_deb: s390x | |
| distro: ubuntu-24.04-arm | |
| - version: 23 | |
| cross: ppc64el | |
| arch_deb: ppc64el | |
| arch_gnu: powerpc64le | |
| distro: ubuntu-26.04-arm | |
| - version: 23 | |
| cross: loongarch64 | |
| arch_deb: loong64 | |
| arch_gnu: loongarch64 | |
| distro: ubuntu-26.04-arm | |
| - version: 23 | |
| cross: loongarch64 | |
| extra: -fastmath | |
| arch_deb: loong64 | |
| arch_gnu: loongarch64 | |
| distro: ubuntu-26.04-arm | |
| - version: 23 | |
| cross: loongarch64 | |
| extra: -fastmath | |
| arch_deb: loong64 | |
| arch_gnu: loongarch64 | |
| distro: ubuntu-26.04-arm | |
| runs-on: ${{ matrix.distro }} | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - name: CPU Information | |
| run: cat /proc/cpuinfo | |
| - name: Install APT Dependencies | |
| run: | | |
| sudo add-apt-repository ppa:ccache-backports/ccache-backports-ppa | |
| wget https://apt.llvm.org/llvm.sh | |
| chmod +x llvm.sh | |
| sudo ./llvm.sh ${{ matrix.version }} | |
| sudo apt-get -y --no-install-recommends install ccache ninja-build \ | |
| binfmt-support clang-${{ matrix.version }} llvm-${{ matrix.version }} lld-${{ matrix.version }} \ | |
| pipx libc6-${{ matrix.arch_deb }}-cross g++-${{ matrix.arch_gnu }}-linux-gnu${{ matrix.arch_gnu_abi }} \ | |
| binutils-${{ matrix.arch_gnu }}-linux-gnu${{ matrix.arch_gnu_abi }} | |
| sudo apt-get -y --no-install-recommends satisfy 'qemu-user-static | qemu-user-binfmt' | |
| pipx install meson | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ github.job }}-${{ matrix.version }}-${{ matrix.cross }} | |
| verbose: 2 | |
| - name: add ccache to the build path | |
| run: | | |
| export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
| - name: Configure | |
| run: | | |
| meson setup --cross-file=docker/cross-files/${{ matrix.cross }}-clang-${{ matrix.version }}-ccache.cross build \ | |
| || (cat build/meson-logs/meson-log.txt ; false) | |
| - name: Build | |
| run: ninja -C build -v | |
| - name: Test | |
| run: | | |
| # shellcheck disable=SC2046 | |
| meson test -C build --print-errorlogs | |
| clang: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - version: "14" | |
| distro: ubuntu-24.04 | |
| - version: "14" | |
| distro: ubuntu-24.04 | |
| arch_flags: -ffast-math | |
| - version: "14" | |
| distro: ubuntu-24.04-arm | |
| arch_flags: -march=armv8-a+fp+aes+sha2 | |
| plain: true | |
| # grep Features < /proc/cpuinfo | head -n 1 | awk '-F: ' '{print $2}' | sed 's/asimd //;s/evtstrm //;s/pmull //;s/sha1 //;s/crc32 //;s/atomics //;s/fphp //;s/asimd.. //g;s/cpuid //;s/asimd... //g;s/jscvt //;s/fcma //;s/lrcpc //;s/dcpop //;s/sm3 //;s/sha512 //;s/uscat //;s/ilrcpc //;s/pac. //g;s/dcpodp //;s/sveaes //;s/svebitperm //;s/svesha3 //;s/svesm4 //;s/flagm2 //;s/frint //;s/svei8mm //;s/svebf16 //' | tr ' ' '+' | |
| - version: "14" | |
| distro: ubuntu-24.04-arm | |
| arch_flags: -ffast-math -march=armv8-a+fp+aes+sha2 | |
| plain: true | |
| - version: "15" | |
| distro: ubuntu-24.04 | |
| - version: "15" | |
| distro: ubuntu-24.04 | |
| arch_flags: -ffast-math | |
| - version: "15" | |
| distro: ubuntu-24.04-arm | |
| - version: "15" | |
| distro: ubuntu-24.04-arm | |
| arch_flags: -ffast-math | |
| - version: "16" | |
| distro: ubuntu-24.04 | |
| arch_flags: -Wno-unsafe-buffer-usage | |
| - version: "16" | |
| distro: ubuntu-24.04 | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage | |
| - version: "16" | |
| distro: ubuntu-24.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage | |
| - version: "16" | |
| distro: ubuntu-24.04-arm | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage | |
| - version: "17" | |
| distro: ubuntu-26.04 | |
| arch_flags: -Wno-unsafe-buffer-usage | |
| - version: "17" | |
| distro: ubuntu-26.04 | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage | |
| - version: "17" | |
| distro: ubuntu-26.04 | |
| arch_flags: -Wno-unsafe-buffer-usage -O2 | |
| - version: "17" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage | |
| - version: "17" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage | |
| - version: "17" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage -O2 | |
| - version: "18" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default | |
| - version: "18" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-nan-infinity-disabled | |
| - version: "18" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -O2 | |
| - version: "18" | |
| distro: ubuntu-24.04-riscv | |
| plain: true | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default | |
| - version: "18" | |
| distro: ubuntu-24.04-riscv | |
| plain: true | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -O2 | |
| - version: "18" | |
| distro: ubuntu-24.04-riscv | |
| plain: true | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-nan-infinity-disabled | |
| - version: "19" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default | |
| - version: "19" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-nan-infinity-disabled | |
| - version: "19" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -O2 | |
| - version: "20" | |
| distro: ubuntu-26.04 | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default | |
| - version: "20" | |
| distro: ubuntu-26.04 | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-nan-infinity-disabled | |
| - version: "20" | |
| distro: ubuntu-26.04 | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -O2 | |
| - version: "20" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default | |
| - version: "20" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-nan-infinity-disabled | |
| - version: "20" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -O2 | |
| - version: "21" | |
| distro: ubuntu-26.04 | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword | |
| - version: "21" | |
| distro: ubuntu-26.04 | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword -Wno-nan-infinity-disabled | |
| - version: "21" | |
| distro: ubuntu-26.04 | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword -O2 | |
| - version: "21" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword | |
| - version: "21" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword -Wno-nan-infinity-disabled | |
| - version: "21" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword -O2 | |
| - version: "21" # armv7 | |
| distro: ubuntu-24.04-arm | |
| arch_flags: --target=arm-linux-gnueabihf -march=armv7-a -mfpu=neon -isystem=/usr/arm-linux-gnueabihf/include -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword | |
| pkg: g++-arm-linux-gnueabihf | |
| plain: true | |
| - version: "21" # x86 no -march=native | |
| distro: ubuntu-26.04 | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword -O2 | |
| plain: true | |
| - version: "22" | |
| distro: ubuntu-26.04 | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword | |
| - version: "22" | |
| distro: ubuntu-26.04 | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword -Wno-nan-infinity-disabled | |
| - version: "22" | |
| distro: ubuntu-26.04 | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword -O2 | |
| - version: "22" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword | |
| - version: "22" | |
| distro: ubuntu-26.04-arm | |
| plain: true | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword | |
| - version: "22" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword -Wno-nan-infinity-disabled | |
| - version: "22" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword -O2 | |
| - version: "23" | |
| distro: ubuntu-26.04 | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword | |
| - version: "23" | |
| distro: ubuntu-26.04 | |
| arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword -Wno-nan-infinity-disabled | |
| - version: "23" | |
| distro: ubuntu-26.04 | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword -O2 | |
| # - version: "23" | |
| # distro: ubuntu-26.04-arm | |
| # arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword | |
| - version: "23" | |
| distro: ubuntu-26.04-arm | |
| plain: true | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword | |
| # - version: "23" | |
| # distro: ubuntu-26.04-arm | |
| # arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword -Wno-nan-infinity-disabled | |
| - version: "23" | |
| distro: ubuntu-26.04-arm | |
| arch_flags: -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-c++-keyword -O2 | |
| runs-on: ${{ matrix.distro }} | |
| env: | |
| CFLAGS: ${{ matrix.arch_flags }} ${{ case( | |
| matrix.plain == true, '-Wall -Weverything -Werror', | |
| '-march=native -Wall -Weverything -Werror') }} -fno-lax-vector-conversions | |
| CXXFLAGS: ${{ matrix.arch_flags }} ${{ case( | |
| matrix.plain == true, '-Wall -Weverything -Werror', | |
| '-march=native -Wall -Weverything -Werror') }} -fno-lax-vector-conversions | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - id: cpu | |
| name: CPU Information | |
| run: | | |
| cat /proc/cpuinfo | |
| - name: enable armhf | |
| if: ${{ matrix.pkg == 'g++-arm-linux-gnueabihf' }} | |
| run: sudo dpkg --add-architecture armhf && sudo apt-get update && sudo apt-get install -y libstdc++6:armhf | |
| - name: Install newer clang | |
| if: ${{ fromJSON(matrix.version) >= '21' }} | |
| run: | | |
| wget https://apt.llvm.org/llvm.sh | |
| chmod +x llvm.sh | |
| sudo ./llvm.sh ${{ matrix.version }} | |
| - name: Install APT Dependencies | |
| run: | | |
| sudo add-apt-repository ppa:ccache-backports/ccache-backports-ppa | |
| sudo apt-get -y --no-install-recommends install ninja-build pipx \ | |
| clang-${{ matrix.version }} ccache ${{ matrix.pkg }} | |
| pipx install meson==1.3.2 | |
| sudo rm /usr/bin/gcc /usr/bin/g++ /usr/bin/cc /usr/bin/c++ | |
| sudo ln -s "$(command -v clang-${{ matrix.version }})" /usr/bin/cc | |
| sudo ln -s "$(command -v clang-${{ matrix.version }})" /usr/bin/c++ | |
| - name: reformat arch flags | |
| id: cache-key-hasher | |
| run: echo hash="$(echo ${{ matrix.version }}-${{ matrix.distro }}-"${CFLAGS}" | sha1sum -)" >> "$GITHUB_OUTPUT" | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ github.job }}-${{ steps.cache-key-hasher.outputs.hash }} | |
| verbose: 2 | |
| - name: add ccache to the build path | |
| run: | | |
| export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
| - name: Configure | |
| run: meson setup build || (cat build/meson-logs/meson-log.txt ; false) | |
| - name: Build | |
| run: meson compile -C build --verbose | |
| - name: Test | |
| run: | | |
| # shellcheck disable=SC2046 | |
| meson test -C build --print-errorlogs | |
| macos: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # https://www.jessesquires.com/blog/2020/01/06/selecting-an-xcode-version-on-github-ci/ | |
| # https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md#xcode | |
| # https://trac.macports.org/wiki/XcodeVersionInfo | |
| # https://en.wikipedia.org/wiki/Xcode#Xcode_26.0_(since_version_number_change)_2 | |
| include: | |
| - xcode: "16.0" # clang 16? | |
| os: macos-15 # arm64 | |
| arch_flags: -march=native -Wno-poison-system-directories | |
| # "-Wno-poison-system-directories": due to meson test | |
| # "-march=native": without, or with -mcpu=apple-m1 then unavailable __ARM_FEATURE_s get enabled | |
| - xcode: "26.2" # clang 17? | |
| os: macos-26 # arm64 | |
| arch_flags: -Wno-poison-system-directories -Wno-switch-default | |
| # "-Wno-poison-system-directories": due to meson test | |
| - xcode: "26.4.1" # clang 21? | |
| os: macos-26 | |
| arch_flags: -Wno-poison-system-directories -Wno-switch-default -Wno-c++-keyword | |
| # "-Wno-poison-system-directories": due to meson test | |
| - xcode: "26.5" # clang 21? | |
| os: macos-26-intel | |
| arch_flags: -march=native -Wno-poison-system-directories -Wno-switch-default -Wno-c++-keyword | |
| # "-Wno-poison-system-directories": due to meson test | |
| - xcode: "26.5" # clang 21? | |
| os: macos-26-intel | |
| arch_flags: -Wno-poison-system-directories -Wno-switch-default -Wno-c++-keyword | |
| # "-Wno-poison-system-directories": due to meson test | |
| - xcode: "26.6" # clang 21? | |
| os: macos-26 # arm64 | |
| arch_flags: -march=native -Wno-poison-system-directories -Wno-switch-default -Wno-c++-keyword | |
| # "-Wno-poison-system-directories": due to meson test | |
| - xcode: "27.0" # clang 21? | |
| os: xcode-27 # arm64 | |
| arch_flags: -Wno-poison-system-directories -Wno-switch-default -Wno-c++-keyword -fno-lax-vector-conversions | |
| # "-Wno-poison-system-directories": due to meson test | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app | |
| CFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -Wno-complex-component-init | |
| CXXFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -Wno-complex-component-init | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| # - name: System Information | |
| # run: system_profiler | |
| - name: Compiler version | |
| run: cc --version | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ github.job }}-${{ matrix.os }}-${{ matrix.xcode }} | |
| verbose: 2 | |
| - name: Python install bug workaround # https://github.com/actions/setup-python/issues/577 | |
| run: | | |
| find /usr/local/bin -type l -exec sh -c 'readlink -f "$1" \ | |
| | grep -q ^/Library/Frameworks/Python.framework/Versions/' _ {} \; -exec rm -v {} \; | |
| - name: Install Homebrew Dependencies | |
| run: brew install meson ninja | |
| - name: Configure | |
| run: meson setup build || (cat build/meson-logs/meson-log.txt ; false) | |
| - name: Build | |
| run: ninja -C build -v | |
| - name: Test | |
| run: | | |
| # shellcheck disable=SC2046 | |
| meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul) | |
| icc: | |
| runs-on: ubuntu-26.04 | |
| env: | |
| CC: /home/runner/.local/bin/icx | |
| CXX: /home/runner/.local/bin/icpx | |
| CFLAGS: -Wall -Werror -march=native -fp-model precise | |
| CXXFLAGS: -Wall -Werror -march=native -fp-model precise | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: CPU Information | |
| run: cat /proc/cpuinfo | |
| - name: Install APT Dependencies | |
| run: sudo apt-get install -y --no-install-recommends ninja-build pipx && pipx install meson==1.3.2 | |
| - name: Install ICC | |
| run: | | |
| # download the key to system keyring | |
| wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ | |
| | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null | |
| # add signed entry to apt sources and configure the APT client to use Intel repository: | |
| echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list | |
| sudo apt-get update | |
| sudo apt-get install -y --no-install-recommends intel-oneapi-compiler-dpcpp-cpp | |
| mkdir -p ~/.local/bin/ || true | |
| for exe in icx icpx; do | |
| # shellcheck disable=SC2016 | |
| printf '#!/bin/bash\nARGS="$@"\nsource /opt/intel/oneapi/compiler/latest/env/vars.sh >/dev/null\n%s ${ARGS}\n' "${exe}" > ~/.local/bin/"${exe}" | |
| chmod 0755 ~/.local/bin/"${exe}"; | |
| done | |
| - name: Configure | |
| run: meson setup build | |
| - name: Build | |
| run: ninja -C build -v | |
| - name: Test | |
| run: | | |
| # shellcheck disable=SC2046 | |
| meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul) | |
| msvc-arm64: | |
| name: Windows MSVC-AArch64 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [ armv9.0 ] | |
| # armv8.0, armv8.1, armv8.2, armv8.3, armv8.4, armv8.5, armv8.6, armv8.7, armv8.8, armv8.9 | |
| runner: | |
| # - name: windows-11-arm | |
| # vcvarsall: C:\Program Files\Microsoft Visual Studio\2022\Enterprise | |
| - name: windows-11-vs2026-arm | |
| vcvarsall: C:\Program Files\Microsoft Visual Studio\18\Enterprise | |
| runs-on: ${{ matrix.runner.name }} | |
| env: | |
| CC: ccache.exe cl.exe | |
| CCXX: ccache.exe cl.exe | |
| CFLAGS: /WX /Z7 /arch:${{ matrix.arch }} | |
| CXXFLAGS: /WX /Z7 /arch:${{ matrix.arch }} | |
| CPPFLAGS: /Zc:preprocessor | |
| LDFLAGS: /WX | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@f09c25b45002a07be2955cbe52e8cee55643f89d # v1.2.24 | |
| with: | |
| key: ${{ matrix.runner.name }}-${{matrix.arch}}-${{ github.job }} | |
| verbose: 2 | |
| # - name: CPU information | |
| # shell: pwsh | |
| # run: Get-WmiObject Win32_Processor | |
| # # 2026-09-07 snapshot | |
| # # Caption : ARMv8 (64-bit) Family 8 Model D49 Revision 0 | |
| # # DeviceID : CPU0 | |
| # # Manufacturer : MICROSOFT CORPORATION | |
| # # MaxClockSpeed : 3399 | |
| # # Name : Cobalt 100 | |
| # # SocketDesignation : None | |
| - name: Setup / configure / build / test | |
| shell: pwsh | |
| run: | | |
| & '${{ matrix.runner.vcvarsall }}\Common7\Tools\Launch-VsDevShell.ps1' -Arch arm64 -SkipAutomaticLocation | |
| python3 -m pip install --upgrade ninja meson | |
| meson setup --backend=ninja build | |
| meson compile -C build --verbose | |
| meson test -C build --print-errorlogs | |
| # Get-Childitem -Path '${{ matrix.runner.vcvarsall }}' -Filter Launch-VsDevShell.ps1 -File -Recurse -ErrorAction SilentlyContinue -Force |