BUG: All executable and library project types should specify a program database file name for all configurations. Even when debug information is not used the .pdb file specified is used to construct the name of a .idb file that exists for all configurations when building with the VS IDE.

This commit is contained in:
Brad King 2007-03-14 09:34:31 -04:00
parent c53b26baf2
commit 770ffb1699
1 changed files with 6 additions and 21 deletions

View File

@ -390,7 +390,6 @@ public:
// Check for specific options.
bool UsingUnicode();
bool UsingDebugPDB();
// Write options to output.
void OutputPreprocessorDefinitions(std::ostream& fout,
@ -579,12 +578,13 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
targetOptions.OutputPreprocessorDefinitions(fout, "\t\t\t\t", "\n");
fout << "\t\t\t\tAssemblerListingLocation=\"" << configName << "\"\n";
fout << "\t\t\t\tObjectFile=\"$(IntDir)\\\"\n";
if(targetOptions.UsingDebugPDB() &&
(target.GetType() == cmTarget::EXECUTABLE ||
if(target.GetType() == cmTarget::EXECUTABLE ||
target.GetType() == cmTarget::STATIC_LIBRARY ||
target.GetType() == cmTarget::SHARED_LIBRARY ||
target.GetType() == cmTarget::MODULE_LIBRARY))
target.GetType() == cmTarget::MODULE_LIBRARY)
{
// We need to specify a program database file name even for
// non-debug configurations because VS still creates .idb files.
fout << "\t\t\t\tProgramDataBaseFileName=\""
<< target.GetDirectory(configName) << "/"
<< target.GetPDBName(configName) << "\"\n";
@ -1697,21 +1697,6 @@ bool cmLocalVisualStudio7GeneratorOptions::UsingUnicode()
return false;
}
//----------------------------------------------------------------------------
bool cmLocalVisualStudio7GeneratorOptions::UsingDebugPDB()
{
std::map<cmStdString, cmStdString>::iterator mi =
this->FlagMap.find("DebugInformationFormat");
if(mi != this->FlagMap.end() && mi->second != "1")
{
return true;
}
else
{
return false;
}
}
//----------------------------------------------------------------------------
void cmLocalVisualStudio7GeneratorOptions::Parse(const char* flags)
{