| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file LICENSE.rst or https://cmake.org/licensing for details. */
- #include "cmFileAPIConfigureLog.h"
- #include <cm3p/json/value.h>
- #include "cmFileAPI.h"
- #include "cmStringAlgorithms.h"
- #include "cmake.h"
- namespace {
- class ConfigureLog
- {
- cmFileAPI& FileAPI;
- unsigned long Version;
- Json::Value DumpPath();
- Json::Value DumpEventKindNames();
- public:
- ConfigureLog(cmFileAPI& fileAPI, unsigned long version);
- Json::Value Dump();
- };
- ConfigureLog::ConfigureLog(cmFileAPI& fileAPI, unsigned long version)
- : FileAPI(fileAPI)
- , Version(version)
- {
- static_cast<void>(this->Version);
- }
- Json::Value ConfigureLog::Dump()
- {
- Json::Value configureLog = Json::objectValue;
- configureLog["path"] = this->DumpPath();
- configureLog["eventKindNames"] = this->DumpEventKindNames();
- return configureLog;
- }
- Json::Value ConfigureLog::DumpPath()
- {
- return cmStrCat(this->FileAPI.GetCMakeInstance()->GetHomeOutputDirectory(),
- "/CMakeFiles/CMakeConfigureLog.yaml");
- }
- Json::Value ConfigureLog::DumpEventKindNames()
- {
- // Report at most one version of each event kind.
- // If a new event kind is added, increment ConfigureLogV1Minor.
- // If a new version of an existing event kind is added, a new
- // major version of the configureLog object kind is needed.
- Json::Value eventKindNames = Json::arrayValue;
- if (this->Version == 1) {
- eventKindNames.append("message-v1"); // WriteMessageEvent
- eventKindNames.append("try_compile-v1"); // WriteTryCompileEvent
- eventKindNames.append("try_run-v1"); // WriteTryRunEvent
- eventKindNames.append("find-v1"); // WriteFindBaseEvent
- }
- return eventKindNames;
- }
- }
- Json::Value cmFileAPIConfigureLogDump(cmFileAPI& fileAPI,
- unsigned long version)
- {
- ConfigureLog configureLog(fileAPI, version);
- return configureLog.Dump();
- }
|