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
|
||||
// of extensions will be tried, the names must match at this point to be
|
||||
// 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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue