summaryrefslogtreecommitdiffstats
path: root/Source/cmake.h
diff options
context:
space:
mode:
authorMatthew Woehlke <matthew.woehlke@kitware.com>2022-11-23 22:02:22 (GMT)
committerBrad King <brad.king@kitware.com>2022-12-16 15:11:37 (GMT)
commit746c776caf1207049922edb3ea63586b94fca4c6 (patch)
treea846db4f6435b8d4f1c592af0a26209ba13b5a1f /Source/cmake.h
parente8b8d82cbf60e517ad4b9026ba24de1c59165af4 (diff)
downloadCMake-746c776caf1207049922edb3ea63586b94fca4c6.zip
CMake-746c776caf1207049922edb3ea63586b94fca4c6.tar.gz
CMake-746c776caf1207049922edb3ea63586b94fca4c6.tar.bz2
ConfigureLog: Add infrastructure for structured configure event logging
Add infrastructure for a "configure log". Use YAML for a balance of machine- and human-readability to records details of configure-time events in a structured format. Teach the RunCMake test framework to support matching the configure log. Issue: #23200
Diffstat (limited to 'Source/cmake.h')
-rw-r--r--Source/cmake.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/Source/cmake.h b/Source/cmake.h
index 325c0c5..10db87d 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -37,6 +37,7 @@
# include "cmMakefileProfilingData.h"
#endif
+class cmConfigureLog;
class cmExternalMakefileProjectGeneratorFactory;
class cmFileAPI;
class cmFileTimeCache;
@@ -521,6 +522,10 @@ public:
void SetTraceFile(std::string const& file);
void PrintTraceFormatVersion();
+#ifndef CMAKE_BOOTSTRAP
+ cmConfigureLog* GetConfigureLog() const { return this->ConfigureLog.get(); }
+#endif
+
//! Use trace from another ::cmake instance.
void SetTraceRedirect(cmake* other);
@@ -714,6 +719,9 @@ private:
TraceFormat TraceFormatVar = TRACE_HUMAN;
cmGeneratedFileStream TraceFile;
cmake* TraceRedirect = nullptr;
+#ifndef CMAKE_BOOTSTRAP
+ std::unique_ptr<cmConfigureLog> ConfigureLog;
+#endif
bool WarnUninitialized = false;
bool WarnUnusedCli = true;
bool CheckSystemVars = false;