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

Method MakeClosure

Source/cmDefinitions.cxx:60–79  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

58}
59
60cmDefinitions cmDefinitions::MakeClosure(StackIter begin, StackIter end)
61{
62 cmDefinitions closure;
63 std::unordered_set<cm::string_view> undefined;
64 for (StackIter it = begin; it != end; ++it) {
65 // Consider local definitions.
66 for (auto const& mi : it->Map) {
67 // Use this key if it is not already set or unset.
68 if (closure.Map.find(mi.first) == closure.Map.end() &&
69 undefined.find(mi.first.view()) == undefined.end()) {
70 if (mi.second.Value) {
71 closure.Map.insert(mi);
72 } else {
73 undefined.emplace(mi.first.view());
74 }
75 }
76 }
77 }
78 return closure;
79}
80
81std::vector<std::string> cmDefinitions::ClosureKeys(StackIter begin,
82 StackIter end)

Callers

nothing calls this directly

Calls 5

viewMethod · 0.80
emplaceMethod · 0.80
findMethod · 0.45
endMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected