summaryrefslogtreecommitdiff
path: root/Source/cmMakefile.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r--Source/cmMakefile.cxx15
1 files changed, 15 insertions, 0 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 2742206a27..940cd05819 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -804,6 +804,21 @@ void cmMakefile::AddLinkLibraryForTarget(const char *target,
cmTargets::iterator i = this->Targets.find(target);
if ( i != this->Targets.end())
{
+ cmTarget* tgt =
+ this->GetCMakeInstance()->GetGlobalGenerator()->FindTarget(0, lib);
+ if(tgt)
+ {
+ // if it is not a static or shared library then you can not link to it
+ if(!((tgt->GetType() == cmTarget::STATIC_LIBRARY) ||
+ (tgt->GetType() == cmTarget::SHARED_LIBRARY)))
+ {
+ cmOStringStream e;
+ e << "Attempt to add link library " << lib
+ << " which is not a library target to target " << tgt->GetType() << " " <<
+ target << "\n";
+ cmSystemTools::Error(e.str().c_str());
+ }
+ }
i->second.AddLinkLibrary( *this, target, lib, llt );
}
else