Fix lookup of source names after conversion to their actual case (#15259)
Since commit v3.1.0-rc1~688^2~15 (cmTarget: Add a method to obtain list of filenames for sources, 2014-03-17) we have code paths that lookup sources by strings containing their own full path after normalization to the actual case on disk. This fails in the case that a cmSourceFile has already been created with a different case in the filename. The comparison of the directory works because it is always normalized. Only the comparison of the file name fails. Fix this by using a case-insensitive comparison of source file names on platforms that do not have case-sensitive filesystems.
This commit is contained in:
parent
d2f2a2e226
commit
84d124e8f0
|
@ -216,7 +216,8 @@ bool cmSourceFileLocation::Matches(cmSourceFileLocation const& loc)
|
||||||
// Both extensions are similarly ambiguous. Since only the old fixed set
|
// Both extensions are similarly ambiguous. Since only the old fixed set
|
||||||
// of extensions will be tried, the names must match at this point to be
|
// of extensions will be tried, the names must match at this point to be
|
||||||
// the same file.
|
// the same file.
|
||||||
if(this->Name.size() != loc.Name.size() || this->Name != loc.Name)
|
if(this->Name.size() != loc.Name.size() ||
|
||||||
|
!cmSystemTools::ComparePath(this->Name, loc.Name))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue