Skip to content

Compiler multibuild #35

Compiler multibuild

Compiler multibuild #35

# 1. Build with multiple versions of gcc and clang using the ubuntu-provided compiler
# 2. Using the latest version of each compiler, build against all supported C++ standards
name: Compiler multibuild
on:
schedule:
- cron: '0 3 * * 1' # 3AM on Monday
workflow_dispatch:
jobs:
gcc-ubuntu-20_04:
strategy:
fail-fast: false
matrix:
version: [7, 8, 9, 10]
uses: ./.github/workflows/build.yaml
with:
name: gcc-${{ matrix.version }}
os: "ubuntu-20.04"
c-compiler: "gcc-${{ matrix.version }}"
cxx-compiler: "g++-${{ matrix.version }}"
gcc-ubuntu-22_04:
strategy:
fail-fast: false
matrix:
version: [11, 12]
uses: ./.github/workflows/build.yaml
with:
name: gcc-${{ matrix.version }}
os: "ubuntu-22.04"
c-compiler: "gcc-${{ matrix.version }}"
cxx-compiler: "g++-${{ matrix.version }}"
clang-ubuntu-20_04:
strategy:
fail-fast: false
matrix:
version: [7, 8, 9, 10, 11, 12]
uses: ./.github/workflows/build.yaml
with:
name: clang-${{ matrix.version }}
os: "ubuntu-20.04"
c-compiler: "clang-${{ matrix.version }}"
cxx-compiler: "clang++-${{ matrix.version }}"
is-clang: true
extra-libs: "libomp-${{ matrix.version }}-dev"
clang-ubuntu-22_04:
strategy:
fail-fast: false
matrix:
version: [13, 14, 15]
uses: ./.github/workflows/build.yaml
with:
name: clang-${{ matrix.version }}
os: "ubuntu-22.04"
c-compiler: "clang-${{ matrix.version }}"
cxx-compiler: "clang++-${{ matrix.version }}"
is-clang: true
extra-libs: "libomp-${{ matrix.version }}-dev"
gcc-cxx-standards:
strategy:
fail-fast: false
matrix:
std: [11, 14, 17, 20, 23]
uses: ./.github/workflows/build.yaml
with:
name: gcc-cxx-${{ matrix.std }}
os: "ubuntu-22.04"
c-compiler: "gcc-12"
cxx-compiler: "g++-12"
extra-cmake-flags: "-DDYNINST_CXX_LANGUAGE_STANDARD=${{ matrix.std }}"
clang-cxx-standards:
strategy:
fail-fast: false
matrix:
std: [11, 14, 17] # clang has a bug with 20+ and operator== reflexiveness
uses: ./.github/workflows/build.yaml
with:
name: cxx-${{ matrix.std }}
os: "ubuntu-22.04"
c-compiler: "clang-15"
cxx-compiler: "clang++-15"
is-clang: true
extra-cmake-flags: "-DDYNINST_CXX_LANGUAGE_STANDARD=${{ matrix.std }}"
extra-libs: "libomp-15-dev"