Browse Source

Modules: Record system inspection steps in the configure log

Replace old-style `file(APPEND .../CMake{Output,Error}.log)` logging
with calls to `message(CONFIGURE_LOG)` to record the steps in the
`CMakeConfigureLog.yaml` configure log instead.

Issue: #23200
Brad King 3 years ago
parent
commit
f6ed2585e5

+ 6 - 6
Modules/CMakeDetermineCUDACompiler.cmake

@@ -520,10 +520,10 @@ elseif(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
     set(_SET_CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT
     set(_SET_CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT
       "set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT \"${CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT}\")")
       "set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT \"${CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT}\")")
 
 
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-      "Parsed CUDA nvcc implicit link information from above output:\n${_nvcc_log}\n${log}\n\n")
+    message(CONFIGURE_LOG
+      "Parsed CUDA nvcc implicit link information:\n${_nvcc_log}\n${log}\n\n")
   else()
   else()
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+    message(CONFIGURE_LOG
       "Failed to parse CUDA nvcc implicit link information:\n${_nvcc_log}\n\n")
       "Failed to parse CUDA nvcc implicit link information:\n${_nvcc_log}\n\n")
     message(FATAL_ERROR "Failed to extract nvcc implicit link line.")
     message(FATAL_ERROR "Failed to extract nvcc implicit link line.")
   endif()
   endif()
@@ -576,10 +576,10 @@ if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
       list(APPEND CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "${line}")
       list(APPEND CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "${line}")
     endforeach()
     endforeach()
 
 
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-      "Parsed CUDA nvcc include information from above output:\n${_nvcc_log}\n${log}\n\n")
+    message(CONFIGURE_LOG
+      "Parsed CUDA nvcc include information:\n${_nvcc_log}\n${log}\n\n")
   else()
   else()
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+    message(CONFIGURE_LOG
       "Failed to detect CUDA nvcc include information:\n${_nvcc_log}\n\n")
       "Failed to detect CUDA nvcc include information:\n${_nvcc_log}\n\n")
   endif()
   endif()
 
 

+ 4 - 4
Modules/CMakeDetermineCompilerABI.cmake

@@ -124,8 +124,8 @@ function(CMAKE_DETERMINE_COMPILER_ABI lang src)
         set (implicit_incdirs "")
         set (implicit_incdirs "")
         cmake_parse_implicit_include_info("${OUTPUT}" "${lang}"
         cmake_parse_implicit_include_info("${OUTPUT}" "${lang}"
           implicit_incdirs log rv)
           implicit_incdirs log rv)
-        file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-          "Parsed ${lang} implicit include dir info from above output: rv=${rv}\n${log}\n\n")
+        message(CONFIGURE_LOG
+          "Parsed ${lang} implicit include dir info: rv=${rv}\n${log}\n\n")
         if("${rv}" STREQUAL "done")
         if("${rv}" STREQUAL "done")
           # Entries that we have been told to explicitly pass as standard include
           # Entries that we have been told to explicitly pass as standard include
           # directories will not be implicitly added by the compiler.
           # directories will not be implicitly added by the compiler.
@@ -149,8 +149,8 @@ function(CMAKE_DETERMINE_COMPILER_ABI lang src)
           "${CMAKE_${lang}_IMPLICIT_OBJECT_REGEX}"
           "${CMAKE_${lang}_IMPLICIT_OBJECT_REGEX}"
           COMPUTE_IMPLICIT_OBJECTS implicit_objs
           COMPUTE_IMPLICIT_OBJECTS implicit_objs
           LANGUAGE ${lang})
           LANGUAGE ${lang})
-        file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-          "Parsed ${lang} implicit link information from above output:\n${log}\n\n")
+        message(CONFIGURE_LOG
+          "Parsed ${lang} implicit link information:\n${log}\n\n")
       endif()
       endif()
       # for VS IDE Intel Fortran we have to figure out the
       # for VS IDE Intel Fortran we have to figure out the
       # implicit link path for the fortran run time using
       # implicit link path for the fortran run time using

+ 23 - 16
Modules/CMakeDetermineCompilerId.cmake

@@ -2,6 +2,8 @@
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
 macro(__determine_compiler_id_test testflags_var userflags_var)
 macro(__determine_compiler_id_test testflags_var userflags_var)
+  set(_CMAKE_${lang}_COMPILER_ID_LOG "")
+
   separate_arguments(testflags UNIX_COMMAND "${${testflags_var}}")
   separate_arguments(testflags UNIX_COMMAND "${${testflags_var}}")
   CMAKE_DETERMINE_COMPILER_ID_BUILD("${lang}" "${testflags}" "${${userflags_var}}" "${src}")
   CMAKE_DETERMINE_COMPILER_ID_BUILD("${lang}" "${testflags}" "${${userflags_var}}" "${src}")
   CMAKE_DETERMINE_COMPILER_ID_MATCH_VENDOR("${lang}" "${COMPILER_${lang}_PRODUCED_OUTPUT}")
   CMAKE_DETERMINE_COMPILER_ID_MATCH_VENDOR("${lang}" "${COMPILER_${lang}_PRODUCED_OUTPUT}")
@@ -11,6 +13,9 @@ macro(__determine_compiler_id_test testflags_var userflags_var)
       CMAKE_DETERMINE_COMPILER_ID_CHECK("${lang}" "${CMAKE_${lang}_COMPILER_ID_DIR}/${file}" "${src}")
       CMAKE_DETERMINE_COMPILER_ID_CHECK("${lang}" "${CMAKE_${lang}_COMPILER_ID_DIR}/${file}" "${src}")
     endforeach()
     endforeach()
   endif()
   endif()
+
+  message(CONFIGURE_LOG "${_CMAKE_${lang}_COMPILER_ID_LOG}")
+  unset(_CMAKE_${lang}_COMPILER_ID_LOG)
 endmacro()
 endmacro()
 
 
 # Function to compile a source file to identify the compiler.  This is
 # Function to compile a source file to identify the compiler.  This is
@@ -114,7 +119,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
       RESULT_VARIABLE result
       RESULT_VARIABLE result
       TIMEOUT 10
       TIMEOUT 10
     )
     )
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+    message(CONFIGURE_LOG
       "Running the ${lang} compiler: \"${CMAKE_${lang}_COMPILER}\" -version\n"
       "Running the ${lang} compiler: \"${CMAKE_${lang}_COMPILER}\" -version\n"
       "${output}\n"
       "${output}\n"
       )
       )
@@ -138,7 +143,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
       RESULT_VARIABLE result
       RESULT_VARIABLE result
       TIMEOUT 10
       TIMEOUT 10
     )
     )
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+    message(CONFIGURE_LOG
       "Running the ${lang} compiler: \"${CMAKE_${lang}_COMPILER}\" -version\n"
       "Running the ${lang} compiler: \"${CMAKE_${lang}_COMPILER}\" -version\n"
       "${output}\n"
       "${output}\n"
       )
       )
@@ -158,7 +163,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
       RESULT_VARIABLE result
       RESULT_VARIABLE result
       TIMEOUT 10
       TIMEOUT 10
     )
     )
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+    message(CONFIGURE_LOG
       "Running the ${lang} compiler: \"${CMAKE_${lang}_COMPILER}\" --version\n"
       "Running the ${lang} compiler: \"${CMAKE_${lang}_COMPILER}\" --version\n"
       "${output}\n"
       "${output}\n"
       )
       )
@@ -732,7 +737,7 @@ ${CMAKE_${lang}_COMPILER_ID_OUTPUT}
 ")
 ")
     # Log the output unless we recognize it as a known-bad case.
     # Log the output unless we recognize it as a known-bad case.
     if(NOT CMAKE_${lang}_COMPILER_ID_OUTPUT MATCHES "warning #5117: Bad # preprocessor line")
     if(NOT CMAKE_${lang}_COMPILER_ID_OUTPUT MATCHES "warning #5117: Bad # preprocessor line")
-      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log "${MSG}")
+      string(APPEND _CMAKE_${lang}_COMPILER_ID_LOG "${MSG}")
     endif()
     endif()
 
 
     string(APPEND _CMAKE_DETERMINE_COMPILER_ID_BUILD_MSG "${MSG}")
     string(APPEND _CMAKE_DETERMINE_COMPILER_ID_BUILD_MSG "${MSG}")
@@ -752,7 +757,7 @@ ${CMAKE_${lang}_COMPILER_ID_OUTPUT}
     set(COMPILER_${lang}_PRODUCED_OUTPUT)
     set(COMPILER_${lang}_PRODUCED_OUTPUT)
   else()
   else()
     # Compilation succeeded.
     # Compilation succeeded.
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+    string(APPEND _CMAKE_${lang}_COMPILER_ID_LOG
       "Compiling the ${lang} compiler identification source file \"${src}\" succeeded.
       "Compiling the ${lang} compiler identification source file \"${src}\" succeeded.
 ${COMPILER_DESCRIPTION}
 ${COMPILER_DESCRIPTION}
 The output was:
 The output was:
@@ -781,7 +786,7 @@ ${CMAKE_${lang}_COMPILER_ID_OUTPUT}
     foreach(file ${files})
     foreach(file ${files})
       if(NOT IS_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}/${file})
       if(NOT IS_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}/${file})
         list(APPEND COMPILER_${lang}_PRODUCED_FILES ${file})
         list(APPEND COMPILER_${lang}_PRODUCED_FILES ${file})
-        file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+        string(APPEND _CMAKE_${lang}_COMPILER_ID_LOG
           "Compilation of the ${lang} compiler identification source \""
           "Compilation of the ${lang} compiler identification source \""
           "${src}\" produced \"${file}\"\n\n")
           "${src}\" produced \"${file}\"\n\n")
       endif()
       endif()
@@ -789,7 +794,7 @@ ${CMAKE_${lang}_COMPILER_ID_OUTPUT}
 
 
     if(NOT COMPILER_${lang}_PRODUCED_FILES)
     if(NOT COMPILER_${lang}_PRODUCED_FILES)
       # No executable was found.
       # No executable was found.
-      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+      string(APPEND _CMAKE_${lang}_COMPILER_ID_LOG
         "Compilation of the ${lang} compiler identification source \""
         "Compilation of the ${lang} compiler identification source \""
         "${src}\" did not produce an executable in \""
         "${src}\" did not produce an executable in \""
         "${CMAKE_${lang}_COMPILER_ID_DIR}\".\n\n")
         "${CMAKE_${lang}_COMPILER_ID_DIR}\".\n\n")
@@ -801,6 +806,7 @@ ${CMAKE_${lang}_COMPILER_ID_OUTPUT}
   # Return the files produced by the compilation.
   # Return the files produced by the compilation.
   set(COMPILER_${lang}_PRODUCED_FILES "${COMPILER_${lang}_PRODUCED_FILES}" PARENT_SCOPE)
   set(COMPILER_${lang}_PRODUCED_FILES "${COMPILER_${lang}_PRODUCED_FILES}" PARENT_SCOPE)
   set(COMPILER_${lang}_PRODUCED_OUTPUT "${COMPILER_${lang}_PRODUCED_OUTPUT}" PARENT_SCOPE)
   set(COMPILER_${lang}_PRODUCED_OUTPUT "${COMPILER_${lang}_PRODUCED_OUTPUT}" PARENT_SCOPE)
+  set(_CMAKE_${lang}_COMPILER_ID_LOG "${_CMAKE_${lang}_COMPILER_ID_LOG}" PARENT_SCOPE)
 
 
 endfunction()
 endfunction()
 
 
@@ -994,15 +1000,16 @@ function(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file)
     # Check the compiler identification string.
     # Check the compiler identification string.
     if(CMAKE_${lang}_COMPILER_ID)
     if(CMAKE_${lang}_COMPILER_ID)
       # The compiler identification was found.
       # The compiler identification was found.
-      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-        "The ${lang} compiler identification is ${CMAKE_${lang}_COMPILER_ID}, found in \""
-        "${file}\"\n\n")
+      string(APPEND _CMAKE_${lang}_COMPILER_ID_LOG
+        "The ${lang} compiler identification is ${CMAKE_${lang}_COMPILER_ID}, found in:\n"
+        "  ${file}\n\n")
     else()
     else()
       # The compiler identification could not be found.
       # The compiler identification could not be found.
-      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
-        "The ${lang} compiler identification could not be found in \""
-        "${file}\"\n\n")
+      string(APPEND _CMAKE_${lang}_COMPILER_ID_LOG
+        "The ${lang} compiler identification could not be found in:\n"
+        "  ${file}\n\n")
     endif()
     endif()
+    set(_CMAKE_${lang}_COMPILER_ID_LOG "${_CMAKE_${lang}_COMPILER_ID_LOG}" PARENT_SCOPE)
   endif()
   endif()
 
 
   # try to figure out the executable format: ELF, COFF, Mach-O
   # try to figure out the executable format: ELF, COFF, Mach-O
@@ -1089,7 +1096,7 @@ function(CMAKE_DETERMINE_COMPILER_ID_VENDOR lang userflags)
       )
       )
 
 
     if("${output}" MATCHES "${regex}")
     if("${output}" MATCHES "${regex}")
-      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+      message(CONFIGURE_LOG
         "Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
         "Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
         "matched \"${regex}\":\n${output}")
         "matched \"${regex}\":\n${output}")
       set(CMAKE_${lang}_COMPILER_ID "${vendor}" PARENT_SCOPE)
       set(CMAKE_${lang}_COMPILER_ID "${vendor}" PARENT_SCOPE)
@@ -1098,11 +1105,11 @@ function(CMAKE_DETERMINE_COMPILER_ID_VENDOR lang userflags)
       break()
       break()
     else()
     else()
       if("${result}" MATCHES  "timeout")
       if("${result}" MATCHES  "timeout")
-        file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+        message(CONFIGURE_LOG
           "Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
           "Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
           "terminated after 10 s due to timeout.")
           "terminated after 10 s due to timeout.")
       else()
       else()
-        file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+        message(CONFIGURE_LOG
           "Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
           "Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
           "did not match \"${regex}\":\n${output}")
           "did not match \"${regex}\":\n${output}")
        endif()
        endif()

+ 2 - 2
Modules/CMakeDetermineFortranCompiler.cmake

@@ -187,11 +187,11 @@ if(NOT CMAKE_Fortran_COMPILER_ID_RUN)
     if(NOT CMAKE_COMPILER_RETURN)
     if(NOT CMAKE_COMPILER_RETURN)
       if(CMAKE_COMPILER_OUTPUT MATCHES "THIS_IS_GNU")
       if(CMAKE_COMPILER_OUTPUT MATCHES "THIS_IS_GNU")
         set(CMAKE_Fortran_COMPILER_ID "GNU")
         set(CMAKE_Fortran_COMPILER_ID "GNU")
-        file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+        message(CONFIGURE_LOG
           "Determining if the Fortran compiler is GNU succeeded with "
           "Determining if the Fortran compiler is GNU succeeded with "
           "the following output:\n${CMAKE_COMPILER_OUTPUT}\n\n")
           "the following output:\n${CMAKE_COMPILER_OUTPUT}\n\n")
       else()
       else()
-        file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+        message(CONFIGURE_LOG
           "Determining if the Fortran compiler is GNU failed with "
           "Determining if the Fortran compiler is GNU failed with "
           "the following output:\n${CMAKE_COMPILER_OUTPUT}\n\n")
           "the following output:\n${CMAKE_COMPILER_OUTPUT}\n\n")
       endif()
       endif()

+ 7 - 6
Modules/CMakeDetermineSystem.cmake

@@ -196,13 +196,14 @@ endif()
 if(CMAKE_BINARY_DIR)
 if(CMAKE_BINARY_DIR)
   # write entry to the log file
   # write entry to the log file
   if(PRESET_CMAKE_SYSTEM_NAME)
   if(PRESET_CMAKE_SYSTEM_NAME)
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-                "The target system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n")
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-                "The host system is: ${CMAKE_HOST_SYSTEM_NAME} - ${CMAKE_HOST_SYSTEM_VERSION} - ${CMAKE_HOST_SYSTEM_PROCESSOR}\n")
+    message(CONFIGURE_LOG
+      "The target system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n"
+      "The host system is: ${CMAKE_HOST_SYSTEM_NAME} - ${CMAKE_HOST_SYSTEM_VERSION} - ${CMAKE_HOST_SYSTEM_PROCESSOR}\n"
+      )
   else()
   else()
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-                "The system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n")
+    message(CONFIGURE_LOG
+      "The system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n"
+      )
   endif()
   endif()
 
 
   # if a toolchain file is used, it needs to be included in the configured file,
   # if a toolchain file is used, it needs to be included in the configured file,

+ 1 - 1
Modules/CMakeTestCUDACompiler.cmake

@@ -60,7 +60,7 @@ if(CMAKE_CUDA_ABI_COMPILED)
       set(_CUDA_ARCHS_STATUS "")
       set(_CUDA_ARCHS_STATUS "")
     endif()
     endif()
     string(REPLACE "\n" "\n  " _CUDA_ARCHS_OUTPUT "  ${_CUDA_ARCHS_OUTPUT}")
     string(REPLACE "\n" "\n  " _CUDA_ARCHS_OUTPUT "  ${_CUDA_ARCHS_OUTPUT}")
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+    message(CONFIGURE_LOG
       "Detecting the CUDA native architecture(s) failed with "
       "Detecting the CUDA native architecture(s) failed with "
       "the following output:\n${_CUDA_ARCHS_OUTPUT}\n\n")
       "the following output:\n${_CUDA_ARCHS_OUTPUT}\n\n")
   endif()
   endif()

+ 2 - 2
Modules/CheckLanguage.cmake

@@ -90,14 +90,14 @@ file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\"
       )
       )
     include(${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}/result.cmake OPTIONAL)
     include(${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}/result.cmake OPTIONAL)
     if(CMAKE_${lang}_COMPILER AND "${_cl_result}" STREQUAL "0")
     if(CMAKE_${lang}_COMPILER AND "${_cl_result}" STREQUAL "0")
-      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+      message(CONFIGURE_LOG
         "${_desc} passed with the following output:\n"
         "${_desc} passed with the following output:\n"
         "${_cl_output}\n")
         "${_cl_output}\n")
       set(_CHECK_COMPILER_STATUS CHECK_PASS)
       set(_CHECK_COMPILER_STATUS CHECK_PASS)
     else()
     else()
       set(CMAKE_${lang}_COMPILER NOTFOUND)
       set(CMAKE_${lang}_COMPILER NOTFOUND)
       set(_CHECK_COMPILER_STATUS CHECK_FAIL)
       set(_CHECK_COMPILER_STATUS CHECK_FAIL)
-      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+      message(CONFIGURE_LOG
         "${_desc} failed with the following output:\n"
         "${_desc} failed with the following output:\n"
         "${_cl_output}\n")
         "${_cl_output}\n")
     endif()
     endif()

+ 2 - 2
Modules/Compiler/NAG-Fortran.cmake

@@ -14,7 +14,7 @@ if(NOT CMAKE_Fortran_COMPILER_WORKS AND NOT CMAKE_Fortran_COMPILER_FORCED)
     string(REGEX REPLACE "/[^/]*$" "" _nag_dir "${_nag_obj}")
     string(REGEX REPLACE "/[^/]*$" "" _nag_dir "${_nag_obj}")
     string(REGEX REPLACE "([][+.*()^])" "\\\\\\1" _nag_regex "${_nag_dir}")
     string(REGEX REPLACE "([][+.*()^])" "\\\\\\1" _nag_regex "${_nag_dir}")
     set(CMAKE_Fortran_IMPLICIT_OBJECT_REGEX "^${_nag_regex}/")
     set(CMAKE_Fortran_IMPLICIT_OBJECT_REGEX "^${_nag_regex}/")
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+    message(CONFIGURE_LOG
       "Detecting NAG Fortran directory with -dryrun found\n"
       "Detecting NAG Fortran directory with -dryrun found\n"
       "  object: ${_nag_obj}\n"
       "  object: ${_nag_obj}\n"
       "  directory: ${_nag_dir}\n"
       "  directory: ${_nag_dir}\n"
@@ -22,7 +22,7 @@ if(NOT CMAKE_Fortran_COMPILER_WORKS AND NOT CMAKE_Fortran_COMPILER_FORCED)
       "from output:\n${_dryrun}\n\n")
       "from output:\n${_dryrun}\n\n")
     message(CHECK_PASS "${_nag_dir}")
     message(CHECK_PASS "${_nag_dir}")
   else()
   else()
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+    message(CONFIGURE_LOG
       "Detecting NAG Fortran directory with -dryrun failed:\n${_dryrun}\n\n")
       "Detecting NAG Fortran directory with -dryrun failed:\n${_dryrun}\n\n")
     message(CHECK_FAIL "failed")
     message(CHECK_FAIL "failed")
   endif()
   endif()

+ 4 - 4
Modules/FindOpenMP.cmake

@@ -238,9 +238,6 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
           LANGUAGE ${LANG}
           LANGUAGE ${LANG}
         )
         )
 
 
-        file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-        "Parsed ${LANG} OpenMP implicit link information from above output:\n${OpenMP_${LANG}_LOG_VAR}\n\n")
-
         # For LCC we should additionally alanyze -print-search-dirs output
         # For LCC we should additionally alanyze -print-search-dirs output
         # to check for additional implicit_dirs.
         # to check for additional implicit_dirs.
         # Note: This won't work if CMP0129 policy is set to OLD!
         # Note: This won't work if CMP0129 policy is set to OLD!
@@ -253,11 +250,14 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
           if("${output_lines}" MATCHES ".*\nlibraries:[ \t]+(.*:)\n.*")
           if("${output_lines}" MATCHES ".*\nlibraries:[ \t]+(.*:)\n.*")
             string(REPLACE ":" ";" implicit_dirs_addon "${CMAKE_MATCH_1}")
             string(REPLACE ":" ";" implicit_dirs_addon "${CMAKE_MATCH_1}")
             list(PREPEND OpenMP_${LANG}_IMPLICIT_LINK_DIRS ${implicit_dirs_addon})
             list(PREPEND OpenMP_${LANG}_IMPLICIT_LINK_DIRS ${implicit_dirs_addon})
-            file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+            string(APPEND OpenMP_${LANG}_LOG_VAR
               "  Extended OpenMP library search paths: [${implicit_dirs}]\n")
               "  Extended OpenMP library search paths: [${implicit_dirs}]\n")
           endif()
           endif()
         endif()
         endif()
 
 
+        message(CONFIGURE_LOG
+          "Parsed ${LANG} OpenMP implicit link information from above output:\n${OpenMP_${LANG}_LOG_VAR}\n\n")
+
         unset(_OPENMP_LIB_NAMES)
         unset(_OPENMP_LIB_NAMES)
         foreach(_OPENMP_IMPLICIT_LIB IN LISTS OpenMP_${LANG}_IMPLICIT_LIBRARIES)
         foreach(_OPENMP_IMPLICIT_LIB IN LISTS OpenMP_${LANG}_IMPLICIT_LIBRARIES)
           get_filename_component(_OPENMP_IMPLICIT_LIB_DIR "${_OPENMP_IMPLICIT_LIB}" DIRECTORY)
           get_filename_component(_OPENMP_IMPLICIT_LIB_DIR "${_OPENMP_IMPLICIT_LIB}" DIRECTORY)

+ 2 - 2
Modules/Internal/CMakeTryCompilerOrLinkerFlag.cmake

@@ -51,7 +51,7 @@ function(CMAKE_TRY_COMPILER_OR_LINKER_FLAG lang flag result)
   if (NOT lang MATCHES "^(C|CXX|Fortran|ASM)$")
   if (NOT lang MATCHES "^(C|CXX|Fortran|ASM)$")
     # other possible languages are not supported
     # other possible languages are not supported
     # log message to keep trace of this problem...
     # log message to keep trace of this problem...
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+    message(CONFIGURE_LOG
       "Function 'CMAKE_CHECK_COMPILER_FLAG' called with unsupported language: ${lang}\n")
       "Function 'CMAKE_CHECK_COMPILER_FLAG' called with unsupported language: ${lang}\n")
     set(${result} FALSE CACHE INTERNAL ${comment})
     set(${result} FALSE CACHE INTERNAL ${comment})
     return()
     return()
@@ -144,7 +144,7 @@ function(CMAKE_TRY_COMPILER_OR_LINKER_FLAG lang flag result)
     endforeach()
     endforeach()
   endif()
   endif()
   if (DEFINED ${result})
   if (DEFINED ${result})
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+    message(CONFIGURE_LOG
         "Determining if the ${flag} option "
         "Determining if the ${flag} option "
         "is supported for ${lang} language failed with the following output:\n"
         "is supported for ${lang} language failed with the following output:\n"
         "${COMPILER_FLAG_OUTPUT}\n")
         "${COMPILER_FLAG_OUTPUT}\n")

+ 2 - 2
Modules/Platform/Android-Determine.cmake

@@ -70,7 +70,7 @@ if(CMAKE_GENERATOR MATCHES "Visual Studio")
       endif()
       endif()
     endif()
     endif()
     if(VCXPROJ_INSPECT_RESULT)
     if(VCXPROJ_INSPECT_RESULT)
-      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+      message(CONFIGURE_LOG
         "Determining the sysroot for the Android NDK failed.
         "Determining the sysroot for the Android NDK failed.
 The output was:
 The output was:
 ${VCXPROJ_INSPECT_RESULT}
 ${VCXPROJ_INSPECT_RESULT}
@@ -78,7 +78,7 @@ ${VCXPROJ_INSPECT_OUTPUT}
 
 
 ")
 ")
     else()
     else()
-      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+      message(CONFIGURE_LOG
         "Determining the sysroot for the Android NDK succeeded.
         "Determining the sysroot for the Android NDK succeeded.
 The output was:
 The output was:
 ${VCXPROJ_INSPECT_RESULT}
 ${VCXPROJ_INSPECT_RESULT}

+ 2 - 2
Tests/RunCMake/Configure/ErrorLogs-stderr.txt

@@ -1,4 +1,4 @@
-CMake Error at ErrorLogs.cmake:3 \(message\):
+CMake Error at ErrorLogs.cmake:[0-9]+ \(message\):
   Some error!
   Some error!
 Call Stack \(most recent call first\):
 Call Stack \(most recent call first\):
-  CMakeLists.txt:3 \(include\)
+  CMakeLists.txt:[0-9]+ \(include\)

+ 2 - 0
Tests/RunCMake/Configure/ErrorLogs.cmake

@@ -1,3 +1,5 @@
+file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+  "Some detailed output information!\n")
 file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
 file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
   "Some detailed error information!\n")
   "Some detailed error information!\n")
 message(SEND_ERROR "Some error!")
 message(SEND_ERROR "Some error!")

+ 16 - 2
Tests/RunCMake/try_compile/ConfigureLog-config.txt

@@ -1,6 +1,13 @@
 ^
 ^
 ---
 ---
-events:
+events:(
+  -
+    kind: "message-v1"
+    backtrace:(
+      - "[^"]+")+
+    message: \|(
++      [^
+]*)*)+
   -
   -
     kind: "try_compile-v1"
     kind: "try_compile-v1"
     backtrace:
     backtrace:
@@ -17,7 +24,14 @@ events:
       variable: "CMAKE_C_ABI_COMPILED"
       variable: "CMAKE_C_ABI_COMPILED"
       cached: true
       cached: true
       stdout: \|.*
       stdout: \|.*
-      exitCode: 0
+      exitCode: 0(
+  -
+    kind: "message-v1"
+    backtrace:(
+      - "[^"]+")+
+    message: \|(
++      [^
+]*)*)*
   -
   -
     kind: "try_compile-v1"
     kind: "try_compile-v1"
     backtrace:
     backtrace:

+ 24 - 3
Tests/RunCMake/try_compile/Inspect-config.txt

@@ -1,6 +1,13 @@
 ^
 ^
 ---
 ---
-events:
+events:(
+  -
+    kind: "message-v1"
+    backtrace:(
+      - "[^"]+")+
+    message: \|(
++      [^
+]*)*)+
   -
   -
     kind: "try_compile-v1"
     kind: "try_compile-v1"
     backtrace:
     backtrace:
@@ -17,7 +24,14 @@ events:
       variable: "CMAKE_C_ABI_COMPILED"
       variable: "CMAKE_C_ABI_COMPILED"
       cached: true
       cached: true
       stdout: \|.*
       stdout: \|.*
-      exitCode: 0
+      exitCode: 0(
+  -
+    kind: "message-v1"
+    backtrace:(
+      - "[^"]+")+
+    message: \|(
++      [^
+]*)*)+
   -
   -
     kind: "try_compile-v1"
     kind: "try_compile-v1"
     backtrace:
     backtrace:
@@ -34,5 +48,12 @@ events:
       variable: "CMAKE_CXX_ABI_COMPILED"
       variable: "CMAKE_CXX_ABI_COMPILED"
       cached: true
       cached: true
       stdout: \|.*
       stdout: \|.*
-      exitCode: 0
+      exitCode: 0(
+  -
+    kind: "message-v1"
+    backtrace:(
+      - "[^"]+")+
+    message: \|(
++      [^
+]*)*)*
 \.\.\.$
 \.\.\.$

+ 11 - 1
Tests/RunCMake/try_compile/SourceFromBadName-config.txt

@@ -1 +1,11 @@
-^$
+^
+---
+events:(
+  -
+    kind: "message-v1"
+    backtrace:(
+      - "[^"]+")+
+    message: \|(
++      [^
+]*)*)+
+\.\.\.$

+ 16 - 2
Tests/RunCMake/try_run/ConfigureLog-config.txt

@@ -1,6 +1,13 @@
 ^
 ^
 ---
 ---
-events:
+events:(
+  -
+    kind: "message-v1"
+    backtrace:(
+      - "[^"]+")+
+    message: \|(
++      [^
+]*)*)+
   -
   -
     kind: "try_compile-v1"
     kind: "try_compile-v1"
     backtrace:
     backtrace:
@@ -16,7 +23,14 @@ events:
       variable: "CMAKE_C_ABI_COMPILED"
       variable: "CMAKE_C_ABI_COMPILED"
       cached: true
       cached: true
       stdout: \|.*
       stdout: \|.*
-      exitCode: 0
+      exitCode: 0(
+  -
+    kind: "message-v1"
+    backtrace:(
+      - "[^"]+")+
+    message: \|(
++      [^
+]*)*)*
   -
   -
     kind: "try_run-v1"
     kind: "try_run-v1"
     backtrace:
     backtrace: