Coverage Report

Created: 2026-09-14 06:43

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/CMake/Source/cmCMakePresetsGraphReadJSONPackagePresets.cxx
Line
Count
Source
1
/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2
   file LICENSE.rst or https://cmake.org/licensing for details.  */
3
#include <functional>
4
#include <map>
5
#include <string>
6
#include <vector>
7
8
#include <cm/optional>
9
#include <cmext/string_view>
10
11
#include <cm3p/json/value.h>
12
13
#include "cmCMakePresetsErrors.h"
14
#include "cmCMakePresetsGraph.h"
15
#include "cmCMakePresetsGraphInternal.h"
16
#include "cmJSONHelpers.h"
17
#include "cmJSONState.h"
18
19
namespace {
20
using PackagePreset = cmCMakePresetsGraph::PackagePreset;
21
22
auto const OutputHelper =
23
  cmJSONHelperBuilder::Object<PackagePreset>(
24
    JsonErrors::INVALID_NAMED_OBJECT_KEY, false)
25
    .Bind("debug"_s, &PackagePreset::DebugOutput,
26
          cmCMakePresetsGraphInternal::PresetOptionalBoolHelper, false)
27
    .Bind("verbose"_s, &PackagePreset::VerboseOutput,
28
          cmCMakePresetsGraphInternal::PresetOptionalBoolHelper, false);
29
30
auto const VariableHelper =
31
  cmJSONHelperBuilder::String(cmCMakePresetsErrors::INVALID_VARIABLE);
32
33
auto const VariablesHelper = cmJSONHelperBuilder::Map<std::string>(
34
  cmCMakePresetsErrors::INVALID_VARIABLE, VariableHelper);
35
36
auto const PackagePresetHelper =
37
  cmCMakePresetsGraphInternal::BindDependentPresetFields(
38
    cmCMakePresetsGraphInternal::BindPresetIdentityFields(
39
      cmJSONHelperBuilder::Object<PackagePreset>(
40
        cmCMakePresetsErrors::INVALID_PRESET_OBJECT, false)))
41
    .Bind("generators"_s, &PackagePreset::Generators,
42
          cmCMakePresetsGraphInternal::PresetVectorStringHelper, false)
43
    .Bind("configurations"_s, &PackagePreset::Configurations,
44
          cmCMakePresetsGraphInternal::PresetVectorStringHelper, false)
45
    .Bind("variables"_s, &PackagePreset::Variables, VariablesHelper, false)
46
    .Bind("configFile"_s, &PackagePreset::ConfigFile,
47
          cmCMakePresetsGraphInternal::PresetStringHelper, false)
48
    .Bind("output"_s, OutputHelper, false)
49
    .Bind("packageName"_s, &PackagePreset::PackageName,
50
          cmCMakePresetsGraphInternal::PresetStringHelper, false)
51
    .Bind("packageVersion"_s, &PackagePreset::PackageVersion,
52
          cmCMakePresetsGraphInternal::PresetStringHelper, false)
53
    .Bind("packageDirectory"_s, &PackagePreset::PackageDirectory,
54
          cmCMakePresetsGraphInternal::PresetStringHelper, false)
55
    .Bind("vendorName"_s, &PackagePreset::VendorName,
56
          cmCMakePresetsGraphInternal::PresetStringHelper, false);
57
}
58
59
namespace cmCMakePresetsGraphInternal {
60
bool PackagePresetsHelper(std::vector<cmCMakePresetsGraph::PackagePreset>& out,
61
                          Json::Value const* value, cmJSONState* state)
62
26.6k
{
63
26.6k
  static auto const helper = cmJSONHelperBuilder::Vector<PackagePreset>(
64
26.6k
    cmCMakePresetsErrors::INVALID_PRESETS, PackagePresetHelper);
65
66
26.6k
  return helper(out, value, state);
67
26.6k
}
68
}