BUG: Duplicate object name detection should not be case sensitive since this code is used on Windows file systems. This addresses bug#3589.

This commit is contained in:
Brad King 2006-08-08 11:26:59 -04:00
parent 67e1f90956
commit 6ad36e407e
1 changed files with 8 additions and 5 deletions

View File

@ -55,7 +55,8 @@ void cmLocalVisualStudioGenerator::ComputeObjectNameRequirements
// Clear the current set of requirements.
this->NeedObjectName.clear();
// Count the number of object files with each name.
// Count the number of object files with each name. Note that
// windows file names are not case sensitive.
std::map<cmStdString, int> objectNameCounts;
for(unsigned int i = 0; i < sourceGroups.size(); ++i)
{
@ -68,8 +69,9 @@ void cmLocalVisualStudioGenerator::ComputeObjectNameRequirements
if(this->SourceFileCompiles(sf))
{
std::string objectName =
cmSystemTools::GetFilenameWithoutLastExtension(
sf->GetFullPath().c_str());
cmSystemTools::LowerCase(
cmSystemTools::GetFilenameWithoutLastExtension(
sf->GetFullPath().c_str()));
objectName += ".obj";
objectNameCounts[objectName] += 1;
}
@ -89,8 +91,9 @@ void cmLocalVisualStudioGenerator::ComputeObjectNameRequirements
if(this->SourceFileCompiles(sf))
{
std::string objectName =
cmSystemTools::GetFilenameWithoutLastExtension(
sf->GetFullPath().c_str());
cmSystemTools::LowerCase(
cmSystemTools::GetFilenameWithoutLastExtension(
sf->GetFullPath().c_str()));
objectName += ".obj";
if(objectNameCounts[objectName] > 1)
{