MCPcopy Create free account
hub / github.com/Kitware/CMake / ReadJSONFile

Method ReadJSONFile

Source/cmCMakePresetsGraphReadJSON.cxx:472–808  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

470}
471
472bool cmCMakePresetsGraph::ReadJSONFile(std::string const& filename,
473 RootType rootType,
474 ReadReason readReason,
475 std::vector<File*>& inProgressFiles,
476 File*& file, std::string& errMsg)
477{
478 bool result;
479
480 for (auto const& f : this->Files) {
481 if (cmSystemTools::SameFile(filename, f->Filename)) {
482 file = f.get();
483 auto fileIt =
484 std::find(inProgressFiles.begin(), inProgressFiles.end(), file);
485 if (fileIt != inProgressFiles.end()) {
486 cmCMakePresetsErrors::CYCLIC_INCLUDE(filename, &this->parseState);
487 return false;
488 }
489
490 return true;
491 }
492 }
493
494 Json::Value root;
495 this->parseState = cmJSONState(filename, &root);
496 if (!this->parseState.errors.empty()) {
497 return false;
498 }
499
500 int v = 0;
501 if ((result = RootVersionHelper(v, &root, &parseState)) != true) {
502 return result;
503 }
504
505 // Support for build and test presets added in version 2.
506 if (v < 2) {
507 if (root.isMember("buildPresets")) {
508 cmCMakePresetsErrors::BUILD_TEST_PRESETS_UNSUPPORTED(
509 &root["buildPresets"], &this->parseState);
510 return false;
511 }
512 if (root.isMember("testPresets")) {
513 cmCMakePresetsErrors::BUILD_TEST_PRESETS_UNSUPPORTED(
514 &root["testPresets"], &this->parseState);
515 return false;
516 }
517 }
518
519 // Support for package presets added in version 6.
520 if (v < 6 && root.isMember("packagePresets")) {
521 cmCMakePresetsErrors::PACKAGE_PRESETS_UNSUPPORTED(&root["packagePresets"],
522 &this->parseState);
523 return false;
524 }
525
526 // Support for workflow presets added in version 6.
527 if (v < 6 && root.isMember("workflowPresets")) {
528 cmCMakePresetsErrors::WORKFLOW_PRESETS_UNSUPPORTED(
529 &root["workflowPresets"], &this->parseState);

Callers 1

Calls 15

CYCLIC_INCLUDEFunction · 0.85
INCLUDE_UNSUPPORTEDFunction · 0.85
SCHEMA_UNSUPPORTEDFunction · 0.85
errorFunction · 0.85
moveFunction · 0.85
DUPLICATE_PRESETSFunction · 0.85
CONDITION_UNSUPPORTEDFunction · 0.85

Tested by

no test coverage detected