Add function local statics + 'singleton' metaclass #992
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: Multi-platform Build of cppfront | |
| on: | |
| pull_request: | |
| paths-ignore: | |
| - 'docs/**' | |
| push: | |
| paths-ignore: | |
| - 'docs/**' | |
| workflow_dispatch: | |
| permissions: | |
| # Restrict permissions to read-only for security | |
| contents: read | |
| concurrency: | |
| # Specific group name to cancel in-progress builds for the same PR/ref | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| # Comment out the Windows build until it is fixed | |
| # build-windows: | |
| # runs-on: windows-latest | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # - 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 -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-14 | |
| compiler: clang++ | |
| cxx-std: 'c++20' | |
| - runs-on: macos-15 | |
| compiler: clang++ | |
| cxx-std: 'c++20' | |
| - runs-on: ubuntu-22.04 | |
| compiler: clang++-15 | |
| 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: clang++-18 | |
| cxx-std: 'c++23' | |
| - 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@v4 | |
| - 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 |