diff --git a/GeoLib/QuadTree.h b/GeoLib/QuadTree.h
index 6259cb301f7d53309dbc37b87f0e496701af5bfc..58a9eb75b92a796ac8078472066f794a69fb0d28 100644
--- a/GeoLib/QuadTree.h
+++ b/GeoLib/QuadTree.h
@@ -16,9 +16,9 @@
 
 #include <cassert>
 #include <limits>
-#include <utility>
-
+#include <list>
 #include <logog/include/logog.hpp>
+#include <utility>
 
 namespace GeoLib
 {
diff --git a/Jenkinsfile b/Jenkinsfile
index d7053c12f0b226486713c6926ad502d92bf5469d..bb09648de9300f617a620dc3c8758f09123ca5a9 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -596,7 +596,7 @@ pipeline {
               sh 'find $CONAN_USER_HOME -name "system_reqs.txt" -exec rm {} \\;'
               try {
                 configure {
-                  cmakeOptions = '-DOGS_CHECK_HEADER_COMPILATION=ON'
+                  cmakeOptions = '-DOGS_CHECK_HEADER_COMPILATION=ON -DBUILD_TESTING=OFF'
                   dir = 'build-check-header'
                 }
               }
diff --git a/MaterialLib/MPL/CreateMedium.cpp b/MaterialLib/MPL/CreateMedium.cpp
index a52bb4e8c57475dc2d762806043ef1eaecbe5e3f..d19fc7be76ee38206696d0e3b03d69bee4b4c5b8 100644
--- a/MaterialLib/MPL/CreateMedium.cpp
+++ b/MaterialLib/MPL/CreateMedium.cpp
@@ -12,7 +12,6 @@
 
 #include "Medium.h"
 
-#include <string>
 #include "BaseLib/ConfigTree.h"
 #include "ParameterLib/Parameter.h"
 
diff --git a/MaterialLib/MPL/CreateMedium.h b/MaterialLib/MPL/CreateMedium.h
index 6603fac069b806c1c13ca389350c8763b87a1362..eddf71b67a5a3a21bc413578480da15d9283fbb7 100644
--- a/MaterialLib/MPL/CreateMedium.h
+++ b/MaterialLib/MPL/CreateMedium.h
@@ -10,7 +10,9 @@
  *              http://www.opengeosys.org/project/license
  */
 
+#include <map>
 #include <memory>
+#include <string>
 #include <vector>
 
 namespace BaseLib
diff --git a/ParameterLib/CMakeLists.txt b/ParameterLib/CMakeLists.txt
index 59bd7e35266ad4eecc2c2c84e339254f1f60739d..b13a5dd19c45facd778a5fd0a0e8450734938ee5 100644
--- a/ParameterLib/CMakeLists.txt
+++ b/ParameterLib/CMakeLists.txt
@@ -10,7 +10,7 @@ include(GenerateExportHeader)
 generate_export_header(ParameterLib)
 target_include_directories(ParameterLib PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
 
-target_link_libraries(ParameterLib PRIVATE BaseLib MeshLib)
+target_link_libraries(ParameterLib PUBLIC MathLib PRIVATE BaseLib MeshLib)
 
 if(OGS_USE_PCH)
     cotire(ParameterLib)
diff --git a/scripts/cmake/CheckHeaderCompilation.cmake b/scripts/cmake/CheckHeaderCompilation.cmake
index 498a0ea8ee5672bbf058a70c7d18a8b2cc50bb34..f5ae2bf0640d8a1677fc067d23a3e31a496b81a8 100644
--- a/scripts/cmake/CheckHeaderCompilation.cmake
+++ b/scripts/cmake/CheckHeaderCompilation.cmake
@@ -1,7 +1,6 @@
 # Supply include directories and compiler flags
 get_directory_property(INCLUDE_DIRS INCLUDE_DIRECTORIES)
-set(CMAKE_REQUIRED_FLAGS "-c -std=gnu++14")
-set(CMAKE_REQUIRED_QUIET TRUE)
+set(CMAKE_REQUIRED_FLAGS "-c")
 
 add_custom_target(check-header
     COMMAND ${CMAKE_COMMAND} -E remove -f CMakeFiles/CMakeError.log
@@ -31,8 +30,11 @@ function(_check_header_compilation TARGET)
     get_target_property(LINK_LIBS ${TARGET} LINK_LIBRARIES)
     foreach(LIB ${LINK_LIBS})
         # Ignore non-existing targets or interface libs
+        if(NOT TARGET ${LIB})
+            continue()
+        endif()
         get_target_property(LIB_TYPE ${LIB} TYPE)
-        if(NOT TARGET ${LIB} OR LIB_TYPE STREQUAL "INTERFACE_LIBRARY")
+        if(LIB_TYPE STREQUAL "INTERFACE_LIBRARY")
             continue()
         endif()
         get_target_property(TARGET_INCLUDE_DIRS ${LIB} INCLUDE_DIRECTORIES)
@@ -58,21 +60,24 @@ function(_check_header_compilation TARGET)
             continue()
         endif()
 
+        string(REPLACE "${PROJECT_SOURCE_DIR}/" "" TEST_NAME ${FILE})
+        string(REPLACE "." "_" TEST_NAME ${TEST_NAME})
+        string(REPLACE "/" "_" TEST_NAME ${TEST_NAME})
         check_cxx_source_compiles(
             "
             #include \"${FILE}\"
             int main() { return 0; }
             "
-            COMPILES
+            ${TEST_NAME}_COMPILES
         )
 
-        if(NOT COMPILES)
+        if(NOT ${TEST_NAME}_COMPILES)
             set(HEADER_COMPILE_ERROR TRUE CACHE INTERNAL "")
-            string(REPLACE "${PROJECT_SOURCE_DIR}/" "" FILE_SHORT ${FILE})
-            message(STATUS "  Compilation failed for ${FILE_SHORT}")
+            message(STATUS "  Compilation failed for ${FILE}")
         endif()
-        unset(COMPILES CACHE)
+        unset(${TEST_NAME}_COMPILES CACHE)
 
+        unset(TEST_NAME)
     endforeach()
 endfunction()
 
@@ -83,12 +88,17 @@ function(check_header_compilation)
     set(HEADER_COMPILE_ERROR FALSE CACHE INTERNAL "")
 
     _check_header_compilation(BaseLib)
+    _check_header_compilation(ChemistryLib)
     _check_header_compilation(GeoLib)
+    foreach(lib Git CMake Test)
+        _check_header_compilation(${lib}InfoLib)
+    endforeach(lib)
     _check_header_compilation(MaterialLib)
     _check_header_compilation(MathLib)
     _check_header_compilation(MeshGeoToolsLib)
     _check_header_compilation(MeshLib)
     _check_header_compilation(NumLib)
+    _check_header_compilation(ParameterLib)
     _check_header_compilation(ProcessLib)
 
     if(HEADER_COMPILE_ERROR)