- name: Ubuntu 18.04 Clang
os: ubuntu-18.04
compiler: clang
+ packages: llvm-6.0
+ gcov-exec: llvm-cov-6.0 gcov
codecov: ubuntu_clang
- name: Ubuntu 18.04 Clang Debug
os: ubuntu-18.04
compiler: clang
+ packages: llvm-6.0
+ gcov-exec: llvm-cov-6.0 gcov
codecov: ubuntu_clang
build-config: Debug
os: ubuntu-18.04
compiler: clang
cmake-args: -GNinja -DWITH_MSAN=ON
- packages: ninja-build
+ packages: ninja-build llvm-6.0
+ gcov-exec: llvm-cov-6.0 gcov
cflags: -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize-memory-track-origins
codecov: ubuntu_clang_msan
- uses: actions/checkout@v1
- name: Install packages (Ubuntu)
- if: runner.os == 'Linux'
+ if: runner.os == 'Linux' && matrix.packages
run: |
sudo apt-get update
- sudo apt-get install -y ninja-build ${{ matrix.packages }}
- sudo pip install codecov
-
- - name: Install Clang code coverage tools (Ubuntu)
- if: runner.os == 'Linux' && matrix.codecov && matrix.compiler == 'clang'
- run: |
- sudo apt-get update
- sudo apt-get install -y gcc-7 clang-7 clang-tools-7 llvm lcov
+ sudo apt-get install -y ${{ matrix.packages }}
- name: Install packages (Windows)
if: runner.os == 'Windows'
+ run: |
+ choco install ninja ${{ matrix.packages }}
+
+ - name: Install packages (Windows/GCC)
+ if: runner.os == 'Windows' && matrix.codecov && matrix.compiler == 'gcc'
# Use gcov-7 via mingw on windows because gcov-8 throws tons of warnings
# https://partner-bugzilla.redhat.com/show_bug.cgi?id=1577508
- # Need to use special fork of codecov-python for Windows
- # https://github.com/codecov/codecov-python/pull/169
run: |
- python -u -m pip install --upgrade pip
- python -u -m pip -v install git+https://github.com/nmoinvaz/codecov-python.git@master
- choco install ninja ${{ matrix.packages }}
- choco uninstall mingw
- choco install mingw --version=7.3.0
+ choco install mingw --version=7.3.0 --force --allow-downgrade
- name: Install packages (macOS)
if: runner.os == 'macOS'
run: |
- brew install ninja llvm ${{ matrix.packages }}
- sudo pip install codecov
+ brew install ninja ${{ matrix.packages }}
+
+ - name: Install codecov.io tools
+ if: matrix.codecov
+ # Need to use special fork of codecov-python for Windows
+ # https://github.com/codecov/codecov-python/pull/169
+ run: |
+ python -u -m pip -v install git+https://github.com/nmoinvaz/codecov-python.git@master
- name: Generate project files
# Shared libaries turned off for qemu ppc* and sparc & reduce code coverage sources
- name: Upload coverage report
if: matrix.codecov
- shell: pwsh
run: |
- $gcovfiles = (Get-ChildItem -Path "*.gcov").Name
- codecov -f $gcovfiles -F "${{ matrix.codecov }}" --name "${{ matrix.name }}"
+ cd ${{ matrix.build-dir || '.' }}
+ python -m codecov -F "${{ matrix.codecov }}" --name "${{ matrix.name }}" --gcov-exec="${{ matrix.gcov-exec || 'gcov' }}"
env:
# Codecov does not yet support GitHub Actions
CODECOV_TOKEN: "${{secrets.CODECOV_TOKEN}}"
\ No newline at end of file
set (CMAKE_C_EXTENSIONS OFF) # Boolean specifying whether compiler specific extensions are requested
endif()
set(VALID_C_STANDARDS "99" "11")
-if(NOT CMAKE_C_STANDARD IN_LIST VALID_C_STANDARDS )
+if(NOT CMAKE_C_STANDARD IN_LIST VALID_C_STANDARDS)
MESSAGE(FATAL_ERROR "CMAKE_C_STANDARD:STRING=${CMAKE_C_STANDARD} not in know standards list\n ${VALID_C_STANDARDS}")
endif()
endif()
if(CODECOVERAGE)
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O1 -g -coverage")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -coverage")
elseif(__GNUC__)
# Some versions of GCC don't support -coverage shorthand
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O1 -fprofile-arcs -ftest-coverage")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -fprofile-arcs -ftest-coverage")
endif()
endif()