name: Multi-platform Build of cppfront on: pull_request: branches-ignore: - docs push: branches-ignore: - docs workflow_dispatch: jobs: build-windows: runs-on: windows-latest steps: - uses: actions/checkout@v3 - uses: ilammy/msvc-dev-cmd@v1 - name: Compiler name & version run: cl.exe - name: Build run: cl.exe source/cppfront.cpp -std:c++latest -MD -EHsc -experimental:module -W4 -WX build-unix-like: strategy: fail-fast: false matrix: runs-on: [ubuntu-22.04] compiler: [g++-10, g++-11, g++-12, clang++-12, clang++-14] cxx-std: ['c++20', 'c++2b'] exclude: # GCC 10 doesn't have support for c++23 - compiler: g++-10 cxx-std: 'c++2b' # Clang 12 and 14 do not compile on 'c++2b' due to llvm/llvm-project#58206 - compiler: clang++-12 cxx-std: 'c++2b' - compiler: clang++-14 cxx-std: 'c++2b' include: - runs-on: macos-latest compiler: clang++ cxx-std: 'c++20' - runs-on: ubuntu-24.04 compiler: clang++-16 cxx-std: 'c++20' - runs-on: ubuntu-24.04 compiler: clang++-17 cxx-std: 'c++20' - runs-on: ubuntu-24.04 compiler: clang++-18 cxx-std: 'c++20' - runs-on: ubuntu-24.04 compiler: g++-14 cxx-std: 'c++2b' runs-on: ${{ matrix.runs-on }} env: CXX: ${{ matrix.compiler }} CXXFLAGS: -std=${{ matrix.cxx-std }} -Wall -Wextra -Wold-style-cast -Wunused-parameter -Wpedantic -Werror -pthread -Wno-unknown-warning -Wno-unknown-warning-option steps: - uses: actions/checkout@v3 - name: Install compiler if: startsWith(matrix.runs-on, 'ubuntu') run: sudo apt-get install -y $CXX - name: Compiler name & version run: $CXX --version - name: Build run: $CXX source/cppfront.cpp $CXXFLAGS -o cppfront