From c58cbc26cc2a04fa06d22333ffe7ad52f7ede1fa Mon Sep 17 00:00:00 2001 From: Mario Trangoni Date: Sun, 11 Mar 2018 19:22:22 +0100 Subject: travis.yml: Add cppcheck - A tool for static C/C++ code analysis. --- .travis.yml | 19 +++++++++++++++++-- run-static-analysis.sh | 14 ++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100755 run-static-analysis.sh diff --git a/.travis.yml b/.travis.yml index f8806d063..3f36340fe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,16 @@ language: cpp matrix: include: + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + env: + - MATRIX_EVAL="CC=gcc && CXX=g++" + - STATIC_ANALYSIS="yes" + fail_fast: true + - os: linux addons: apt: @@ -13,7 +23,7 @@ matrix: packages: - g++-4.9 env: - - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" + - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" - os: linux addons: @@ -47,10 +57,15 @@ matrix: before_install: - sudo apt-get update -qq + # cppcheck tool + - sudo apt-get install -y cppcheck/trusty-backports # imake - sudo apt-get install -y xutils-dev # X11 libaries - sudo apt-get install -y libxcomposite-dev libxfont-dev libxinerama-dev libxrandr-dev libxtst-dev x11proto-fonts-dev - eval "${MATRIX_EVAL}" script: - - make + # run static analysis tools + - ./run-static-analysis.sh + # build all packages + - make diff --git a/run-static-analysis.sh b/run-static-analysis.sh new file mode 100755 index 000000000..0524c469a --- /dev/null +++ b/run-static-analysis.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +if [[ "${STATIC_ANALYSIS}" == "yes" ]]; then + # cppcheck + if ! [ -x "$(command -v cppcheck)" ]; then + echo 'Error: cppcheck is not installed.' >&2 + exit 1 + fi + CPPCHECK_OPTS='--error-exitcode=0 --force --quiet' + # we exclude some external projects + CPPCHECK_EXCLUDES='-i ./nx-X11/extras/Mesa* -i ./nx-X11/extras/Mesa_* -i nx-X11/programs/Xserver/GL/mesa*' + echo "$(cppcheck --version):"; + cppcheck $CPPCHECK_OPTS $CPPCHECK_EXCLUDES .; +fi -- cgit v1.2.3