diff --git a/Jenkinsfile b/Jenkinsfile index acbbdc2c7fbdb1034f19463de61968e613ee4163..01f77ada079098503a8cb9a0119662433fd901d0 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 c91b13fbfa762c324df47c570be2c84e7da60880..3db37b4938b8deba5828e5355ffd561f8270fb16 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()