Browse Source

cmMakefile: Inline method into caller

The various uses of AddLinkLibraryForTarget are going away.  This is the
only remaining non-deprecated use.
pull/275/head
Stephen Kelly 9 years ago
parent
commit
7edfcd0e83
  1. 30
      Source/cmTargetLinkLibrariesCommand.cxx

30
Source/cmTargetLinkLibrariesCommand.cxx

@ -338,7 +338,35 @@ bool cmTargetLinkLibrariesCommand::HandleLibrary(const std::string& lib,
// Handle normal case first.
if (this->CurrentProcessingState != ProcessingKeywordLinkInterface &&
this->CurrentProcessingState != ProcessingPlainLinkInterface) {
this->Makefile->AddLinkLibraryForTarget(this->Target->GetName(), lib, llt);
cmTarget* t =
this->Makefile->FindLocalNonAliasTarget(this->Target->GetName());
if (!t) {
std::ostringstream e;
e << "Attempt to add link library \"" << lib << "\" to target \""
<< this->Target->GetName()
<< "\" which is not built in this directory.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
} else {
cmTarget* tgt = this->Makefile->GetGlobalGenerator()->FindTarget(lib);
if (tgt && (tgt->GetType() != cmState::STATIC_LIBRARY) &&
(tgt->GetType() != cmState::SHARED_LIBRARY) &&
(tgt->GetType() != cmState::INTERFACE_LIBRARY) &&
!tgt->IsExecutableWithExports()) {
std::ostringstream e;
e << "Target \"" << lib << "\" of type "
<< cmState::GetTargetTypeName(tgt->GetType())
<< " may not be linked into another target. "
<< "One may link only to STATIC or SHARED libraries, or "
<< "to executables with the ENABLE_EXPORTS property set.";
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
}
this->Target->AddLinkLibrary(*this->Makefile, lib, llt);
}
if (this->CurrentProcessingState == ProcessingLinkLibraries) {
this->Target->AppendProperty(
"INTERFACE_LINK_LIBRARIES",

Loading…
Cancel
Save