FIX: fix for bug 1460

This commit is contained in:
Bill Hoffman 2005-02-11 14:20:51 -05:00
parent 575c34300c
commit a2972211a8
1 changed files with 26 additions and 3 deletions

View File

@ -271,6 +271,15 @@ cmVS7FlagTable cmLocalVisualStudio7GeneratorFlagTable[] =
}; };
cmVS7FlagTable cmLocalVisualStudio7GeneratorLinkFlagTable[] =
{
// option flags (some flags map to the same option)
{"LinkIncremental", "INCREMENTAL:NO", "link incremental", "1"},
{"LinkIncremental", "INCREMENTAL:YES", "link incremental", "2"},
{0,0,0,0 }
};
@ -584,6 +593,11 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
extraLinkOptions += targetLinkFlags; extraLinkOptions += targetLinkFlags;
} }
std::map<cmStdString, cmStdString> flagMap;
this->
FillFlagMapFromCommandFlags(flagMap,
&cmLocalVisualStudio7GeneratorLinkFlagTable[0],
extraLinkOptions);
switch(target.GetType()) switch(target.GetType())
{ {
case cmTarget::STATIC_LIBRARY: case cmTarget::STATIC_LIBRARY:
@ -623,7 +637,12 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
temp += ".dll"; temp += ".dll";
fout << "\t\t\t\tOutputFile=\"" fout << "\t\t\t\tOutputFile=\""
<< this->ConvertToXMLOutputPathSingle(temp.c_str()) << "\"\n"; << this->ConvertToXMLOutputPathSingle(temp.c_str()) << "\"\n";
fout << "\t\t\t\tLinkIncremental=\"1\"\n"; for(std::map<cmStdString, cmStdString>::iterator i = flagMap.begin();
i != flagMap.end(); ++i)
{
fout << "\t\t\t\t" << i->first << "=\"" << i->second << "\"\n";
}
if(m_Makefile->IsOn("CMAKE_VERBOSE_MAKEFILE")) if(m_Makefile->IsOn("CMAKE_VERBOSE_MAKEFILE"))
{ {
fout << "\t\t\t\tSuppressStartupBanner=\"FALSE\"\n"; fout << "\t\t\t\tSuppressStartupBanner=\"FALSE\"\n";
@ -696,7 +715,11 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
temp += libName; temp += libName;
temp += ".exe"; temp += ".exe";
fout << "\t\t\t\tOutputFile=\"" << this->ConvertToXMLOutputPathSingle(temp.c_str()) << "\"\n"; fout << "\t\t\t\tOutputFile=\"" << this->ConvertToXMLOutputPathSingle(temp.c_str()) << "\"\n";
fout << "\t\t\t\tLinkIncremental=\"1\"\n"; for(std::map<cmStdString, cmStdString>::iterator i = flagMap.begin();
i != flagMap.end(); ++i)
{
fout << "\t\t\t\t" << i->first << "=\"" << i->second << "\"\n";
}
if(m_Makefile->IsOn("CMAKE_VERBOSE_MAKEFILE")) if(m_Makefile->IsOn("CMAKE_VERBOSE_MAKEFILE"))
{ {
fout << "\t\t\t\tSuppressStartupBanner=\"FALSE\"\n"; fout << "\t\t\t\tSuppressStartupBanner=\"FALSE\"\n";