summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmMakefile.cxx15
-rw-r--r--Source/cmTarget.cxx4
2 files changed, 19 insertions, 0 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 88f55dd..0a1a4dc 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -954,6 +954,21 @@ void cmMakefile::AddLinkLibraryForTarget(const char *target,
}
}
}
+ // make sure the tpye is correct
+ std::string linkType = lib;
+ linkType += "_LINK_TYPE";
+ const char* linkTypeString = this->GetDefinition( linkType.c_str() );
+ if(linkTypeString)
+ {
+ if(strcmp(linkTypeString, "debug") == 0)
+ {
+ llt = cmTarget::DEBUG;
+ }
+ if(strcmp(linkTypeString, "optimized") == 0)
+ {
+ llt = cmTarget::OPTIMIZED;
+ }
+ }
i->second.AddLinkLibrary( *this, target, lib, llt );
}
else
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 18cce53..e7e3b99 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -737,7 +737,9 @@ void cmTarget::Emit( const std::string& lib,
{
// It's already been emitted
if( emitted.find(lib) != emitted.end() )
+ {
return;
+ }
// Emit the dependencies only if this library node hasn't been
// visited before. If it has, then we have a cycle. The recursion
@@ -797,7 +799,9 @@ void cmTarget::GatherDependencies( const cmMakefile& mf,
// If the library is already in the dependency map, then it has
// already been fully processed.
if( dep_map.find(lib) != dep_map.end() )
+ {
return;
+ }
const char* deps = mf.GetDefinition( (lib+"_LIB_DEPENDS").c_str() );
if( deps && strcmp(deps,"") != 0 )