| 315 | } |
| 316 | |
| 317 | void 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 | |
| 345 | void cmComputeTargetDepends::AddTargetDepend(size_t depender_index, |
| 346 | cmLinkItem const& dependee_name, |
no test coverage detected