From 19305afd8a2a46925b1a880de68f7be0ad1f3091 Mon Sep 17 00:00:00 2001 From: Martin Duffy Date: Wed, 22 Mar 2023 13:11:21 -0400 Subject: presets: Improve JSON parser and error messages --- Source/cmake.cxx | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'Source/cmake.cxx') diff --git a/Source/cmake.cxx b/Source/cmake.cxx index dbf961de7d..db47e4332d 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -52,6 +52,7 @@ #if !defined(CMAKE_BOOTSTRAP) # include "cmMakefileProfilingData.h" #endif +#include "cmJSONState.h" #include "cmMessenger.h" #include "cmState.h" #include "cmStateDirectory.h" @@ -1411,13 +1412,10 @@ void cmake::SetArgs(const std::vector& args) if (listPresets != ListPresets::None || !presetName.empty()) { cmCMakePresetsGraph presetsGraph; auto result = presetsGraph.ReadProjectPresets(this->GetHomeDirectory()); - if (result != cmCMakePresetsGraph::ReadFileResult::READ_OK) { + if (result != true) { std::string errorMsg = - cmStrCat("Could not read presets from ", this->GetHomeDirectory(), - ": ", cmCMakePresetsGraph::ResultToString(result)); - if (!presetsGraph.errors.empty()) { - errorMsg = cmStrCat(errorMsg, "\nErrors:\n", presetsGraph.errors); - } + cmStrCat("Could not read presets from ", this->GetHomeDirectory(), ":", + presetsGraph.parseState.GetErrorMessage()); cmSystemTools::Error(errorMsg); return; } @@ -3426,10 +3424,10 @@ int cmake::Build(int jobs, std::string dir, std::vector targets, cmCMakePresetsGraph settingsFile; auto result = settingsFile.ReadProjectPresets(this->GetHomeDirectory()); - if (result != cmCMakePresetsGraph::ReadFileResult::READ_OK) { + if (result != true) { cmSystemTools::Error( - cmStrCat("Could not read presets from ", this->GetHomeDirectory(), - ": ", cmCMakePresetsGraph::ResultToString(result))); + cmStrCat("Could not read presets from ", this->GetHomeDirectory(), ":", + settingsFile.parseState.GetErrorMessage())); return 1; } @@ -3782,10 +3780,10 @@ int cmake::Workflow(const std::string& presetName, cmCMakePresetsGraph settingsFile; auto result = settingsFile.ReadProjectPresets(this->GetHomeDirectory()); - if (result != cmCMakePresetsGraph::ReadFileResult::READ_OK) { - cmSystemTools::Error( - cmStrCat("Could not read presets from ", this->GetHomeDirectory(), ": ", - cmCMakePresetsGraph::ResultToString(result))); + if (result != true) { + cmSystemTools::Error(cmStrCat("Could not read presets from ", + this->GetHomeDirectory(), ":", + settingsFile.parseState.GetErrorMessage())); return 1; } -- cgit v1.2.1