summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2006-11-16 15:57:00 (GMT)
committerKen Martin <ken.martin@kitware.com>2006-11-16 15:57:00 (GMT)
commit786fdbc196e6fa829472d9d8e9545ac837758242 (patch)
treebf4d0d3108f2b104620766c1e58b303f98ebbabb /Source
parent197cbc529eab056ab79cc0551f1ab62aee95e619 (diff)
downloadCMake-786fdbc196e6fa829472d9d8e9545ac837758242.zip
CMake-786fdbc196e6fa829472d9d8e9545ac837758242.tar.gz
CMake-786fdbc196e6fa829472d9d8e9545ac837758242.tar.bz2
ENH: fix a bug with useing debuf optimized libs from other builds
Diffstat (limited to 'Source')
-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 )