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

Function ArchToolsetHelper

Source/cmCMakePresetsGraphReadJSONConfigurePresets.cxx:58–91  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

56}
57
58std::function<bool(ConfigurePreset&, Json::Value const*, cmJSONState*)>
59ArchToolsetHelper(
60 std::string ConfigurePreset::*valueField,
61 cm::optional<ArchToolsetStrategy> ConfigurePreset::*strategyField)
62{
63 auto const objectHelper =
64 JSONHelperBuilder::Object<ConfigurePreset>(JsonErrors::INVALID_OBJECT,
65 false)
66 .Bind("value", valueField,
67 cmCMakePresetsGraphInternal::PresetStringHelper, false)
68 .Bind("strategy", strategyField, ArchToolsetStrategyHelper, false);
69 return [valueField, strategyField,
70 objectHelper](ConfigurePreset& out, Json::Value const* value,
71 cmJSONState* state) -> bool {
72 if (!value) {
73 (out.*valueField).clear();
74 out.*strategyField = cm::nullopt;
75 return true;
76 }
77
78 if (value->isString()) {
79 out.*valueField = value->asString();
80 out.*strategyField = cm::nullopt;
81 return true;
82 }
83
84 if (value->isObject()) {
85 return objectHelper(out, value, state);
86 }
87
88 cmCMakePresetsErrors::INVALID_PRESET(value, state);
89 return false;
90 };
91}
92
93auto const ArchitectureHelper = ArchToolsetHelper(
94 &ConfigurePreset::Architecture, &ConfigurePreset::ArchitectureStrategy);

Calls 6

INVALID_PRESETFunction · 0.85
isStringMethod · 0.80
asStringMethod · 0.80
isObjectMethod · 0.80
BindMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…