mirror of
https://github.com/Kitware/CMake.git
synced 2025-05-08 14:29:03 +08:00
Merge topic 'json-errors-filename'
f134468a98 JSON: Improve JSON error message formatting Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !10463
This commit is contained in:
commit
2604f5d8b3
@ -1668,7 +1668,7 @@ bool cmCTestMultiProcessHandler::InitResourceAllocator(std::string& error)
|
||||
{
|
||||
if (!this->ResourceSpec.ReadFromJSONFile(this->ResourceSpecFile)) {
|
||||
error = cmStrCat("Could not read/parse resource spec file ",
|
||||
this->ResourceSpecFile, ": ",
|
||||
this->ResourceSpecFile, ":\n",
|
||||
this->ResourceSpec.parseState.GetErrorMessage());
|
||||
return false;
|
||||
}
|
||||
|
@ -1556,7 +1556,7 @@ bool cmCTest::SetArgsFromPreset(std::string const& presetName,
|
||||
auto result = settingsFile.ReadProjectPresets(workingDirectory);
|
||||
if (result != true) {
|
||||
cmSystemTools::Error(cmStrCat("Could not read presets from ",
|
||||
workingDirectory, ":",
|
||||
workingDirectory, ":\n",
|
||||
settingsFile.parseState.GetErrorMessage()));
|
||||
return false;
|
||||
}
|
||||
|
@ -148,6 +148,16 @@ void cmInstrumentation::ReadJSONQuery(std::string const& file)
|
||||
auto query = cmInstrumentationQuery();
|
||||
query.ReadJSON(file, this->errorMsg, this->queries, this->hooks,
|
||||
this->callbacks);
|
||||
if (!this->errorMsg.empty()) {
|
||||
cmSystemTools::Error(cmStrCat(
|
||||
"Could not load instrumentation queries from ",
|
||||
cmSystemTools::GetParentDirectory(file), ":\n", this->errorMsg));
|
||||
}
|
||||
}
|
||||
|
||||
bool cmInstrumentation::HasErrors() const
|
||||
{
|
||||
return !this->errorMsg.empty();
|
||||
}
|
||||
|
||||
void cmInstrumentation::WriteJSONQuery(
|
||||
|
@ -53,7 +53,7 @@ public:
|
||||
int CollectTimingAfterBuild(int ppid);
|
||||
void AddHook(cmInstrumentationQuery::Hook hook);
|
||||
void AddQuery(cmInstrumentationQuery::Query query);
|
||||
std::string errorMsg;
|
||||
bool HasErrors() const;
|
||||
std::string const& GetCDashDir();
|
||||
|
||||
private:
|
||||
@ -83,5 +83,6 @@ private:
|
||||
std::vector<std::string> queryFiles;
|
||||
std::map<std::string, std::string> cdashSnippetsMap;
|
||||
Json::Value preTestStats;
|
||||
std::string errorMsg;
|
||||
bool hasQuery = false;
|
||||
};
|
||||
|
@ -12,12 +12,14 @@
|
||||
#include "cmsys/FStream.hxx"
|
||||
|
||||
#include "cmStringAlgorithms.h"
|
||||
#include "cmSystemTools.h"
|
||||
|
||||
cmJSONState::cmJSONState(std::string const& filename, Json::Value* root)
|
||||
cmJSONState::cmJSONState(std::string jsonFile, Json::Value* root)
|
||||
: Filename(std::move(jsonFile))
|
||||
{
|
||||
cmsys::ifstream fin(filename.c_str(), std::ios::in | std::ios::binary);
|
||||
cmsys::ifstream fin(this->Filename.c_str(), std::ios::in | std::ios::binary);
|
||||
if (!fin) {
|
||||
this->AddError(cmStrCat("File not found: ", filename));
|
||||
this->AddError(cmStrCat("File not found: ", this->Filename));
|
||||
return;
|
||||
}
|
||||
// If there's a BOM, toss it.
|
||||
@ -38,7 +40,7 @@ cmJSONState::cmJSONState(std::string const& filename, Json::Value* root)
|
||||
Json::CharReaderBuilder::strictMode(&builder.settings_);
|
||||
std::string errMsg;
|
||||
if (!Json::parseFromStream(builder, fin, root, &errMsg)) {
|
||||
errMsg = cmStrCat("JSON Parse Error: ", filename, ":\n", errMsg);
|
||||
errMsg = cmStrCat("JSON Parse Error: ", this->Filename, ":\n", errMsg);
|
||||
this->AddError(errMsg);
|
||||
}
|
||||
}
|
||||
@ -72,16 +74,17 @@ void cmJSONState::AddErrorAtOffset(std::string const& errMsg,
|
||||
std::string cmJSONState::GetErrorMessage(bool showContext)
|
||||
{
|
||||
std::string message;
|
||||
std::string filenameName = cmSystemTools::GetFilenameName(this->Filename);
|
||||
for (auto const& error : this->errors) {
|
||||
Location loc = error.GetLocation();
|
||||
if (!filenameName.empty() && loc.line > 0) {
|
||||
message = cmStrCat(message, filenameName, ':', loc.line, ": ");
|
||||
}
|
||||
message = cmStrCat(message, error.GetErrorMessage(), "\n");
|
||||
if (showContext) {
|
||||
Location loc = error.GetLocation();
|
||||
if (loc.column > 0) {
|
||||
message = cmStrCat(message, GetJsonContext(loc), "\n");
|
||||
}
|
||||
if (showContext && loc.line > 0) {
|
||||
message = cmStrCat(message, GetJsonContext(loc), "\n");
|
||||
}
|
||||
}
|
||||
message = cmStrCat("\n", message);
|
||||
message.pop_back();
|
||||
return message;
|
||||
}
|
||||
|
@ -9,8 +9,6 @@
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include "cmStringAlgorithms.h"
|
||||
|
||||
namespace Json {
|
||||
class Value;
|
||||
}
|
||||
@ -26,7 +24,7 @@ class cmJSONState
|
||||
public:
|
||||
using JsonPair = std::pair<std::string const, Json::Value const*>;
|
||||
cmJSONState() = default;
|
||||
cmJSONState(std::string const& filename, Json::Value* root);
|
||||
cmJSONState(std::string jsonFile, Json::Value* root);
|
||||
void AddError(std::string const& errMsg);
|
||||
void AddErrorAtValue(std::string const& errMsg, Json::Value const* value);
|
||||
void AddErrorAtOffset(std::string const& errMsg, std::ptrdiff_t offset);
|
||||
@ -46,15 +44,7 @@ public:
|
||||
Error(std::string errMsg)
|
||||
: location({ -1, -1 })
|
||||
, message(std::move(errMsg)) {};
|
||||
std::string GetErrorMessage() const
|
||||
{
|
||||
std::string output = message;
|
||||
if (location.line > 0) {
|
||||
output = cmStrCat("Error: @", location.line, ",", location.column,
|
||||
": ", output);
|
||||
}
|
||||
return output;
|
||||
}
|
||||
std::string GetErrorMessage() const { return message; }
|
||||
Location GetLocation() const { return location; }
|
||||
|
||||
private:
|
||||
@ -70,4 +60,5 @@ public:
|
||||
private:
|
||||
std::string GetJsonContext(Location loc);
|
||||
Location LocateInDocument(ptrdiff_t offset);
|
||||
std::string Filename;
|
||||
};
|
||||
|
@ -1540,8 +1540,8 @@ void cmake::SetArgs(std::vector<std::string> const& args)
|
||||
auto result = presetsGraph.ReadProjectPresets(this->GetHomeDirectory());
|
||||
if (result != true) {
|
||||
std::string errorMsg =
|
||||
cmStrCat("Could not read presets from ", this->GetHomeDirectory(), ":",
|
||||
presetsGraph.parseState.GetErrorMessage());
|
||||
cmStrCat("Could not read presets from ", this->GetHomeDirectory(),
|
||||
":\n", presetsGraph.parseState.GetErrorMessage());
|
||||
cmSystemTools::Error(errorMsg);
|
||||
return;
|
||||
}
|
||||
@ -2635,8 +2635,7 @@ int cmake::ActualConfigure()
|
||||
// actually do the configure
|
||||
auto startTime = std::chrono::steady_clock::now();
|
||||
#if !defined(CMAKE_BOOTSTRAP)
|
||||
if (!this->Instrumentation->errorMsg.empty()) {
|
||||
cmSystemTools::Error(this->Instrumentation->errorMsg);
|
||||
if (this->Instrumentation->HasErrors()) {
|
||||
return 1;
|
||||
}
|
||||
auto doConfigure = [this]() -> int {
|
||||
@ -3750,8 +3749,8 @@ int cmake::Build(int jobs, std::string dir, std::vector<std::string> targets,
|
||||
auto result = settingsFile.ReadProjectPresets(this->GetHomeDirectory());
|
||||
if (result != true) {
|
||||
cmSystemTools::Error(
|
||||
cmStrCat("Could not read presets from ", this->GetHomeDirectory(), ":",
|
||||
settingsFile.parseState.GetErrorMessage()));
|
||||
cmStrCat("Could not read presets from ", this->GetHomeDirectory(),
|
||||
":\n", settingsFile.parseState.GetErrorMessage()));
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -3977,8 +3976,7 @@ int cmake::Build(int jobs, std::string dir, std::vector<std::string> targets,
|
||||
|
||||
#if !defined(CMAKE_BOOTSTRAP)
|
||||
cmInstrumentation instrumentation(dir);
|
||||
if (!instrumentation.errorMsg.empty()) {
|
||||
cmSystemTools::Error(instrumentation.errorMsg);
|
||||
if (instrumentation.HasErrors()) {
|
||||
return 1;
|
||||
}
|
||||
instrumentation.CollectTimingData(
|
||||
@ -4122,7 +4120,7 @@ int cmake::Workflow(std::string const& presetName,
|
||||
auto result = settingsFile.ReadProjectPresets(this->GetHomeDirectory());
|
||||
if (result != true) {
|
||||
cmSystemTools::Error(cmStrCat("Could not read presets from ",
|
||||
this->GetHomeDirectory(), ":",
|
||||
this->GetHomeDirectory(), ":\n",
|
||||
settingsFile.parseState.GetErrorMessage()));
|
||||
return 1;
|
||||
}
|
||||
|
@ -505,7 +505,7 @@ bool testFilteredObject()
|
||||
ASSERT_TRUE(m == expected);
|
||||
|
||||
auto error = state.GetErrorMessage();
|
||||
ASSERT_TRUE(error == "\nFaulty Object Property");
|
||||
ASSERT_TRUE(error == "Faulty Object Property");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -1,2 +1,2 @@
|
||||
^CMake Error: Could not read presets from .*
|
||||
Error: @2,15: Invalid extra field \"\$comment\" in root object
|
||||
CMakePresets.json:2: Invalid extra field \"\$comment\" in root object
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/EmptyPenvInInclude:
|
||||
Error: @3,15: Invalid "include" field
|
||||
CMakePresets.json:3: Invalid "include" field
|
||||
"include": \["\$penv\{\}"\],
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/EmptyPresetName:
|
||||
Error: @5,15: Invalid Preset Name
|
||||
CMakePresets.json:5: Invalid Preset Name
|
||||
"name": "",
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/ExtraPresetField:
|
||||
Error: @8,18: Invalid extra field "invalid" in Preset
|
||||
CMakePresets.json:8: Invalid extra field "invalid" in Preset
|
||||
"invalid": true
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/ExtraRootField:
|
||||
Error: @10,14: Invalid extra field "invalid" in root object
|
||||
CMakePresets.json:10: Invalid extra field "invalid" in root object
|
||||
"invalid": true
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/ExtraVariableField:
|
||||
Error: @11,22: Invalid extra field "invalid" in variable "EXTRA" for preset "ExtraVariableField"
|
||||
CMakePresets.json:11: Invalid extra field "invalid" in variable "EXTRA" for preset "ExtraVariableField"
|
||||
"invalid": true
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/HighVersion:
|
||||
Error: @2,14: Unrecognized "version" 1000: must be >=1 and <=10
|
||||
CMakePresets.json:2: Unrecognized "version" 1000: must be >=1 and <=10
|
||||
"version": 1000,
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/InvalidArchitectureStrategy:
|
||||
Error: @9,21: Invalid preset
|
||||
CMakePresets.json:9: Invalid preset
|
||||
"strategy": {}
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/InvalidPresetBinaryDir:
|
||||
Error: @7,20: "binaryDir" expected a string
|
||||
CMakePresets.json:7: "binaryDir" expected a string
|
||||
"binaryDir": \[\]
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/InvalidPresetGenerator:
|
||||
Error: @6,20: "generator" expected a string
|
||||
CMakePresets.json:6: "generator" expected a string
|
||||
"generator": \[\],
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/InvalidPresetName:
|
||||
Error: @5,15: Invalid Preset Name
|
||||
CMakePresets.json:5: Invalid Preset Name
|
||||
"name": \[\],
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/InvalidPresetVendor:
|
||||
Error: @8,17: Invalid preset
|
||||
CMakePresets.json:8: Invalid preset
|
||||
"vendor": true
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/InvalidPresets:
|
||||
Error: @3,23: Invalid "configurePresets" field
|
||||
CMakePresets.json:3: Invalid "configurePresets" field
|
||||
"configurePresets": {}
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/InvalidRoot:
|
||||
Error: \@1\,1\: Invalid root object
|
||||
CMakePresets.json:1: Invalid root object
|
||||
\[\]
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/InvalidToolsetStrategy:
|
||||
Error: @9,21: Invalid preset
|
||||
CMakePresets.json:9: Invalid preset
|
||||
"strategy": {}
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/InvalidVariableValue:
|
||||
Error: @10,20: "value" expected a string
|
||||
CMakePresets.json:10: "value" expected a string
|
||||
"value": \[\]
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/InvalidVariables:
|
||||
Error: @8,25: Invalid preset
|
||||
CMakePresets.json:8: Invalid preset
|
||||
"cacheVariables": \[\]
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/InvalidVendor:
|
||||
Error: @3,13: Invalid root object
|
||||
CMakePresets.json:3: Invalid root object
|
||||
"vendor": true,
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/InvalidVersion:
|
||||
Error: @2,14: Invalid "version" field
|
||||
CMakePresets.json:2: Invalid "version" field
|
||||
"version": "1.0",
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/LowVersion:
|
||||
Error: @2,14: Unrecognized "version" 0: must be >=1 and <=10
|
||||
CMakePresets.json:2: Unrecognized "version" 0: must be >=1 and <=10
|
||||
"version": 0,
|
||||
\^
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/MinimumRequiredInvalid:
|
||||
Error: @3,27: Invalid "cmakeMinimumRequired"
|
||||
CMakePresets.json:3: Invalid "cmakeMinimumRequired"
|
||||
"cmakeMinimumRequired": "3.18",
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/MinimumRequiredMajor:
|
||||
Error: @4,14: "cmakeMinimumRequired" major version 1000 must be less than [0-9]*
|
||||
CMakePresets.json:4: "cmakeMinimumRequired" major version 1000 must be less than [0-9]*
|
||||
"major": 1000
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/MinimumRequiredMinor:
|
||||
Error: @5,14: "cmakeMinimumRequired" minor version 1000 must be less than [0-9]*
|
||||
CMakePresets.json:5: "cmakeMinimumRequired" minor version 1000 must be less than [0-9]*
|
||||
"minor": 1000
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/MinimumRequiredPatch:
|
||||
Error: @6,14: "cmakeMinimumRequired" patch version 50000000 must be less than [0-9]*
|
||||
CMakePresets.json:6: "cmakeMinimumRequired" patch version 50000000 must be less than [0-9]*
|
||||
"patch": 50000000
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/NoPresetName:
|
||||
Error: @4,5: Missing required field "name" in Preset
|
||||
CMakePresets.json:4: Missing required field "name" in Preset
|
||||
{
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/NoVariableValue:
|
||||
Error: @9,16: Missing required field "value" in variable "VAR" for preset "NoVariableValue"
|
||||
CMakePresets.json:9: Missing required field "value" in variable "VAR" for preset "NoVariableValue"
|
||||
"VAR": {}
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/PresetNotObject:
|
||||
Error: @4,5: Invalid Preset
|
||||
CMakePresets.json:4: Invalid Preset
|
||||
\[\]
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/UnknownArchitectureStrategy:
|
||||
Error: @9,21: Invalid preset
|
||||
CMakePresets.json:9: Invalid preset
|
||||
"strategy": "unknown"
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/UnknownToolsetStrategy:
|
||||
Error: @9,21: Invalid preset
|
||||
CMakePresets.json:9: Invalid preset
|
||||
"strategy": "unknown"
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresets/VariableNotObject:
|
||||
Error: @9,16: Invalid CMake variable "VAR" for preset "VariableNotObject"
|
||||
CMakePresets.json:9: Invalid CMake variable "VAR" for preset "VariableNotObject"
|
||||
"VAR": \[\]
|
||||
\^$
|
||||
|
@ -1,5 +1,5 @@
|
||||
^Could not read/parse resource spec file [^
|
||||
]*/Tests/RunCMake/CTestResourceAllocation/dynamic-resource-nofile-ctest-s-build/dynamic-resspec\.json:[ ]
|
||||
]*/Tests/RunCMake/CTestResourceAllocation/dynamic-resource-nofile-ctest-s-build/dynamic-resspec\.json:
|
||||
File not found: [^
|
||||
]*/Tests/RunCMake/CTestResourceAllocation/dynamic-resource-nofile-ctest-s-build/dynamic-resspec\.json
|
||||
CMake Error at [^
|
||||
|
@ -1,5 +1,5 @@
|
||||
^Could not read/parse resource spec file [^
|
||||
]*/Tests/RunCMake/CTestResourceAllocation/noexist\.json:[ ]
|
||||
]*/Tests/RunCMake/CTestResourceAllocation/noexist\.json:
|
||||
File not found: [^
|
||||
]*/Tests/RunCMake/CTestResourceAllocation/noexist.json
|
||||
Errors while running CTest
|
||||
|
@ -1,5 +1,5 @@
|
||||
^Could not read/parse resource spec file [^
|
||||
]*/Tests/RunCMake/CTestResourceAllocation/invalid\.json:[ ]
|
||||
]*/Tests/RunCMake/CTestResourceAllocation/invalid\.json:
|
||||
JSON Parse Error: [^
|
||||
]*/Tests/RunCMake/CTestResourceAllocation/invalid\.json:
|
||||
\* Line 1, Column 1
|
||||
|
@ -1,4 +1,5 @@
|
||||
^CMake Error: +
|
||||
Error: @3,13: Not a valid hook: "bad hook"
|
||||
^CMake Error: Could not load instrumentation queries from [^
|
||||
]+:
|
||||
bad-hook.json:3: Not a valid hook: "bad hook"
|
||||
"hooks": \["bad hook", "postGenerate", "preCMakeBuild", "postCMakeBuild", "postInstall"\]
|
||||
\^$
|
||||
|
@ -1,4 +1,5 @@
|
||||
^CMake Error: +
|
||||
Error: @3,42: Not a valid query: "bad query"
|
||||
^CMake Error: Could not load instrumentation queries from [^
|
||||
]+:
|
||||
bad-query.json:[0-9]+: Not a valid query: "bad query"
|
||||
"queries": \["staticSystemInformation", "bad query"\]
|
||||
\^$
|
||||
|
@ -1,4 +1,5 @@
|
||||
^CMake Error: +
|
||||
Error: @1,1: Missing required field "version" in root object
|
||||
^CMake Error: Could not load instrumentation queries from [^
|
||||
]+:
|
||||
empty.json:[0-9]+: Missing required field "version" in root object
|
||||
{
|
||||
\^$
|
||||
|
Loading…
x
Reference in New Issue
Block a user