aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMario Trangoni <mjtrangoni@gmail.com>2018-03-11 19:22:22 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2018-07-03 16:40:06 +0200
commitc58cbc26cc2a04fa06d22333ffe7ad52f7ede1fa (patch)
tree33f2b05337fe7596ea9c193a98d607afb9e80ca7
parentfd9de0086d10ee236dd24d51d93f60edf52cd89c (diff)
downloadnx-libs-c58cbc26cc2a04fa06d22333ffe7ad52f7ede1fa.tar.gz
nx-libs-c58cbc26cc2a04fa06d22333ffe7ad52f7ede1fa.tar.bz2
nx-libs-c58cbc26cc2a04fa06d22333ffe7ad52f7ede1fa.zip
travis.yml: Add cppcheck - A tool for static C/C++ code analysis.
-rw-r--r--.travis.yml19
-rwxr-xr-xrun-static-analysis.sh14
2 files changed, 31 insertions, 2 deletions
diff --git a/.travis.yml b/.travis.yml
index f8806d063..3f36340fe 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,10 +10,20 @@ matrix:
apt:
sources:
- ubuntu-toolchain-r-test
+ env:
+ - MATRIX_EVAL="CC=gcc && CXX=g++"
+ - STATIC_ANALYSIS="yes"
+ fail_fast: true
+
+ - os: linux
+ addons:
+ apt:
+ sources:
+ - ubuntu-toolchain-r-test
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