From d02852a043c7b76e91871687ddad28e64e4e3bab Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Fri, 12 Jan 2018 12:57:05 +0100
Subject: [PATCH] [CMake] Added target header-check.

- works only on *nix
- is tested on Jenkins in Docker-Conan-Debug job
---
 Jenkinsfile                                |  1 +
 scripts/cmake/CheckHeaderCompilation.cmake | 12 +++++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index acbbdc2c7fb..01f77ada079 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -117,6 +117,7 @@ pipeline {
                   config = 'Debug'
                 }
               }
+              build { target = 'check-header' }
               build { }
               build { target = 'tests' }
             }
diff --git a/scripts/cmake/CheckHeaderCompilation.cmake b/scripts/cmake/CheckHeaderCompilation.cmake
index c91b13fbfa7..3db37b4938b 100644
--- a/scripts/cmake/CheckHeaderCompilation.cmake
+++ b/scripts/cmake/CheckHeaderCompilation.cmake
@@ -3,6 +3,16 @@ get_directory_property(INCLUDE_DIRS INCLUDE_DIRECTORIES)
 set(CMAKE_REQUIRED_FLAGS "-c -std=gnu++14")
 set(CMAKE_REQUIRED_QUIET TRUE)
 
+add_custom_target(check-header
+    COMMAND ${CMAKE_COMMAND} -E remove CMakeFiles/CMakeError.log
+    COMMAND ${CMAKE_COMMAND} . -DOGS_CHECK_HEADER_COMPILATION=ON
+    COMMAND ${CMAKE_COMMAND} . -DOGS_CHECK_HEADER_COMPILATION=OFF || true
+    COMMAND if [ -f CMakeFiles/CMakeError.log ]\; then cat CMakeFiles/CMakeError.log\; return 1\; else return 0\; fi\;
+    WORKING_DIRECTOY ${PROJECT_BINARY_DIR}
+    COMMENT "Checking header files"
+    USES_TERMINAL
+)
+
 # Checks header for standalone compilation
 function(_check_header_compilation TARGET)
 
@@ -80,6 +90,6 @@ function(check_header_compilation)
     _check_header_compilation(ProcessLib)
 
     if(HEADER_COMPILE_ERROR)
-        message(STATUS "... header compilation check failed, see CMakeFiles/CMakeError.log for details!")
+        message(FATAL_ERROR "... header compilation check failed, see CMakeFiles/CMakeError.log for details!")
     endif()
 endfunction()
-- 
GitLab