From 81d1c988544e294ed6245bd0246ff2c96a24fb18 Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Mon, 12 Feb 2018 15:46:56 +0100
Subject: [PATCH] [Jenkins] Check includes with include-what-you-use

See

- https://include-what-you-use.org
- https://blog.kitware.com/static-checks-with-cmake-cdash-iwyu-clang-tidy-lwyu-cpplint-and-cppcheck/
---
 Jenkinsfile                        | 6 ++++--
 scripts/docker/Dockerfile.gcc.full | 5 +++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index fd01c4d1713..ba94a9508de 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -320,7 +320,7 @@ pipeline {
         stage('Check-Header') {
           agent {
             dockerfile {
-              filename 'Dockerfile.gcc.minimal'
+              filename 'Dockerfile.gcc.full'
               dir 'scripts/docker'
               label 'docker'
               args '-v ccache:/home/jenkins/cache/ccache -v conan-cache:/home/jenkins/cache/conan'
@@ -334,11 +334,13 @@ pipeline {
                 configure {
                   cmakeOptions =
                     '-DOGS_USE_CONAN=ON ' +
-                    '-DOGS_CONAN_BUILD=never '
+                    '-DOGS_CONAN_BUILD=never ' +
+                    '"-DCMAKE_CXX_INCLUDE_WHAT_YOU_USE=/usr/local/bin/include-what-you-use;--transitive_includes_only" '
                   config = 'Debug'
                 }
               }
               build { target = 'check-header' }
+              build { }
             }
           }
           post { always { dir('build') { deleteDir() } } }
diff --git a/scripts/docker/Dockerfile.gcc.full b/scripts/docker/Dockerfile.gcc.full
index e49359c53dc..b9617407132 100644
--- a/scripts/docker/Dockerfile.gcc.full
+++ b/scripts/docker/Dockerfile.gcc.full
@@ -66,4 +66,9 @@ RUN curl -L -o hugo.tar.gz https://github.com/gohugoio/hugo/releases/download/v0
   && mv hugo /usr/local/bin/hugo \
   && rm -rf hugo.tar.gz LICENSE.md README.md
 
+# Include-what-you-use
+RUN curl https://include-what-you-use.org/downloads/include-what-you-use-0.8-x86_64-linux-gnu-ubuntu-16.04.tar.gz -O \
+  && tar xf include-what-you-use-0.8-x86_64-linux-gnu-ubuntu-16.04.tar.gz -C /usr/local/ --strip-components=1 \
+  && rm include-what-you-use-0.8-x86_64-linux-gnu-ubuntu-16.04.tar.gz
+
 USER jenkins
-- 
GitLab