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