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

Method AddObjectDepends

Source/cmComputeTargetDepends.cxx:317–343  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

315}
316
317void cmComputeTargetDepends::AddObjectDepends(size_t depender_index,
318 cmSourceFile const* o,
319 std::set<cmLinkItem>& emitted)
320{
321 std::string const& objLib = o->GetObjectLibrary();
322 if (objLib.empty()) {
323 return;
324 }
325 cmGeneratorTarget const* depender = this->Targets[depender_index];
326 cmLinkItem const& objItem =
327 depender->ResolveLinkItem(BT<std::string>(objLib));
328 if (emitted.insert(objItem).second) {
329 if (depender->GetType() != cmStateEnums::EXECUTABLE &&
330 depender->GetType() != cmStateEnums::STATIC_LIBRARY &&
331 depender->GetType() != cmStateEnums::SHARED_LIBRARY &&
332 depender->GetType() != cmStateEnums::MODULE_LIBRARY &&
333 depender->GetType() != cmStateEnums::OBJECT_LIBRARY) {
334 this->GlobalGenerator->GetCMakeInstance()->IssueMessage(
335 MessageType::FATAL_ERROR,
336 "Only executables and libraries may reference target objects.",
337 depender->GetBacktrace());
338 return;
339 }
340 const_cast<cmGeneratorTarget*>(depender)->Target->AddUtility(objLib,
341 false);
342 }
343}
344
345void cmComputeTargetDepends::AddTargetDepend(size_t depender_index,
346 cmLinkItem const& dependee_name,

Callers 2

CollectTargetDependsMethod · 0.95
AddInterfaceDependsMethod · 0.95

Calls 9

GetObjectLibraryMethod · 0.80
AddUtilityMethod · 0.80
emptyMethod · 0.45
ResolveLinkItemMethod · 0.45
insertMethod · 0.45
GetTypeMethod · 0.45
IssueMessageMethod · 0.45
GetCMakeInstanceMethod · 0.45
GetBacktraceMethod · 0.45

Tested by

no test coverage detected