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

Method PopulateCompatibleInterfaceProperties

Source/cmExportFileGenerator.cxx:281–315  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

279}
280
281void cmExportFileGenerator::PopulateCompatibleInterfaceProperties(
282 cmGeneratorTarget const* gtarget, ImportPropertyMap& properties) const
283{
284 this->PopulateInterfaceProperty("COMPATIBLE_INTERFACE_BOOL", gtarget,
285 properties);
286 this->PopulateInterfaceProperty("COMPATIBLE_INTERFACE_STRING", gtarget,
287 properties);
288 this->PopulateInterfaceProperty("COMPATIBLE_INTERFACE_NUMBER_MIN", gtarget,
289 properties);
290 this->PopulateInterfaceProperty("COMPATIBLE_INTERFACE_NUMBER_MAX", gtarget,
291 properties);
292
293 std::set<std::string> ifaceProperties;
294
295 getPropertyContents(gtarget, "COMPATIBLE_INTERFACE_BOOL", ifaceProperties);
296 getPropertyContents(gtarget, "COMPATIBLE_INTERFACE_STRING", ifaceProperties);
297 getPropertyContents(gtarget, "COMPATIBLE_INTERFACE_NUMBER_MIN",
298 ifaceProperties);
299 getPropertyContents(gtarget, "COMPATIBLE_INTERFACE_NUMBER_MAX",
300 ifaceProperties);
301
302 if (gtarget->GetType() != cmStateEnums::INTERFACE_LIBRARY) {
303 std::vector<std::string> configNames =
304 gtarget->Target->GetMakefile()->GetGeneratorConfigs(
305 cmMakefile::IncludeEmptyConfig);
306
307 for (std::string const& cn : configNames) {
308 getCompatibleInterfaceProperties(gtarget, ifaceProperties, cn);
309 }
310 }
311
312 for (std::string const& ip : ifaceProperties) {
313 this->PopulateInterfaceProperty("INTERFACE_" + ip, gtarget, properties);
314 }
315}
316
317void cmExportFileGenerator::PopulateCustomTransitiveInterfaceProperties(
318 cmGeneratorTarget const* target,

Callers 1

Calls 6

getPropertyContentsFunction · 0.85
GetGeneratorConfigsMethod · 0.80
GetTypeMethod · 0.45
GetMakefileMethod · 0.45

Tested by

no test coverage detected