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

Function ParsePreprocessorDefine

Source/cmCxxModuleMetadata.cxx:35–74  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33}
34
35bool ParsePreprocessorDefine(Json::Value& dval,
36 cmCxxModuleMetadata::PreprocessorDefineData& out,
37 cmJSONState* state)
38{
39 if (!dval.isObject()) {
40 state->AddErrorAtValue("each entry in 'definitions' must be an object",
41 &dval);
42 return false;
43 }
44
45 if (!dval.isMember("name") || !dval["name"].isString() ||
46 dval["name"].asString().empty()) {
47 state->AddErrorAtValue(
48 "preprocessor definition requires a non-empty 'name'", &dval["name"]);
49 return false;
50 }
51 out.Name = dval["name"].asString();
52
53 if (dval.isMember("value")) {
54 if (dval["value"].isString()) {
55 out.Value = dval["value"].asString();
56 } else if (!dval["value"].isNull()) {
57 state->AddErrorAtValue(
58 "'value' in preprocessor definition must be string or null",
59 &dval["value"]);
60 return false;
61 }
62 }
63
64 if (dval.isMember("undef")) {
65 if (!dval["undef"].isBool()) {
66 state->AddErrorAtValue(
67 "'undef' in preprocessor definition must be boolean", &dval["undef"]);
68 return false;
69 }
70 out.Undef = dval["undef"].asBool();
71 }
72
73 return true;
74}
75
76bool ParseCMakeLocalArgumentsVendor(
77 Json::Value& cmlav, cmCxxModuleMetadata::LocalArgumentsData& out,

Callers 1

ParseLocalArgumentsFunction · 0.85

Calls 9

isObjectMethod · 0.80
AddErrorAtValueMethod · 0.80
isMemberMethod · 0.80
isStringMethod · 0.80
asStringMethod · 0.80
isNullMethod · 0.80
isBoolMethod · 0.80
asBoolMethod · 0.80
emptyMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…