work on c++ -std=c++98 compat WIP #816
This file contains 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: Minor C/C++ CI | |
on: | |
push: | |
branches-ignore: | |
- 'ignore*' | |
- 'temp*' | |
- smoke | |
- master | |
paths-ignore: | |
- 'docs/*' | |
pull_request: | |
paths-ignore: | |
- 'docs/*' | |
branches-ignore: | |
- smoke | |
- master | |
jobs: | |
linux: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
MAKE: | |
- make -j4 SANITIZE=1 O0=1 | |
- make -j4 CC='gcc -std=c99' | |
- make -j4 CC='gcc -std=c11' | |
- make -j4 CXX='clang++-11 -std=c++2a -stdlib=libc++' | |
- make examples SANITIZE=1 | |
- make perf | |
steps: | |
- if: ${{ contains(matrix.MAKE, 'SANITIZE=1 O0=1') }} | |
name: setup cbmc | |
run: sudo apt install -y --no-install-recommends cbmc | |
# needed for libc++ since the Ubuntu 20.04.2 update (image version 20210315.1) | |
# https://askubuntu.com/questions/1211743/clang-doesnt-find-c-stdlib-on-my-ubuntu-18-04-but-it-does-on-a-brand-new-ins | |
# variant 1: downgrade clang++ to matching g++ (= 11) | |
- if: ${{ contains(matrix.MAKE, 'libc++') }} | |
run: | | |
sudo apt-get install clang++-11 libc++-11-dev libc++abi-11-dev | |
clang++ --version | |
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-11 100 | |
clang++ --version | |
g++ --version | |
- uses: actions/checkout@v2 | |
- run: ${{ matrix.MAKE }} | |
- if: ${{ contains(matrix.MAKE, 'SANITIZE=1 O0=1') }} | |
name: make verify | |
run: ${{ matrix.MAKE }} verify | |
windows: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- run: nmake -f Makefile.win all | |
macOS: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- run: make CXX='c++ -std=c++17' |