From dbf65f216fd08ce12df51bae17d0382473ce1d7b Mon Sep 17 00:00:00 2001 From: Amitha Perera Date: Tue, 29 May 2001 14:16:27 -0400 Subject: BUG: Now only one makefile rule is generated per depenency. This eliminates a number of warnings. --- Source/cmUnixMakefileGenerator.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Source/cmUnixMakefileGenerator.cxx b/Source/cmUnixMakefileGenerator.cxx index 4be093a..73de1a4 100644 --- a/Source/cmUnixMakefileGenerator.cxx +++ b/Source/cmUnixMakefileGenerator.cxx @@ -370,16 +370,23 @@ void cmUnixMakefileGenerator::OutputTargets(std::ostream& fout) // in this makefile will depend on. void cmUnixMakefileGenerator::OutputDependencies(std::ostream& fout) { + // Each dependency should only be emitted once. + std::set emitted; + fout << "CMAKE_DEPEND_LIBS = "; cmTarget::LinkLibraries& libs = m_Makefile->GetLinkLibraries(); cmTarget::LinkLibraries::const_iterator lib2; + // Search the list of libraries that will be linked into // the executable + emitted.clear(); for(lib2 = libs.begin(); lib2 != libs.end(); ++lib2) { // loop over the list of directories that the libraries might // be in, looking for an ADD_LIBRARY(lib...) line. This would // be stored in the cache + if( ! emitted.insert(lib2->first).second ) continue; + const char* cacheValue = cmCacheManager::GetInstance()->GetCacheValue(lib2->first.c_str()); if(cacheValue) @@ -400,11 +407,15 @@ void cmUnixMakefileGenerator::OutputDependencies(std::ostream& fout) } } fout << "\n\n"; + + emitted.clear(); for(lib2 = libs.begin(); lib2 != libs.end(); ++lib2) { // loop over the list of directories that the libraries might // be in, looking for an ADD_LIBRARY(lib...) line. This would // be stored in the cache + if( ! emitted.insert(lib2->first).second ) continue; + const char* cacheValue = cmCacheManager::GetInstance()->GetCacheValue(lib2->first.c_str()); if(cacheValue) -- cgit v0.12