diff options
author | Ken Martin <ken.martin@kitware.com> | 2006-11-16 15:57:00 (GMT) |
---|---|---|
committer | Ken Martin <ken.martin@kitware.com> | 2006-11-16 15:57:00 (GMT) |
commit | 786fdbc196e6fa829472d9d8e9545ac837758242 (patch) | |
tree | bf4d0d3108f2b104620766c1e58b303f98ebbabb | |
parent | 197cbc529eab056ab79cc0551f1ab62aee95e619 (diff) | |
download | CMake-786fdbc196e6fa829472d9d8e9545ac837758242.zip CMake-786fdbc196e6fa829472d9d8e9545ac837758242.tar.gz CMake-786fdbc196e6fa829472d9d8e9545ac837758242.tar.bz2 |
ENH: fix a bug with useing debuf optimized libs from other builds
-rw-r--r-- | Source/cmMakefile.cxx | 15 | ||||
-rw-r--r-- | Source/cmTarget.cxx | 4 |
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 ) |