cmSourceFileLocation: Simplify logic in Matches
This commit is contained in:
parent
5554910ec2
commit
e8e1f3a19f
|
@ -211,36 +211,33 @@ cmSourceFileLocation
|
|||
bool cmSourceFileLocation::Matches(cmSourceFileLocation const& loc)
|
||||
{
|
||||
assert(this->Makefile);
|
||||
if(this->AmbiguousExtension && loc.AmbiguousExtension)
|
||||
if(this->AmbiguousExtension == loc.AmbiguousExtension)
|
||||
{
|
||||
// Both extensions are ambiguous. Since only the old fixed set of
|
||||
// extensions will be tried, the names must match at this point to
|
||||
// be the same file.
|
||||
// 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 != loc.Name)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if(this->AmbiguousExtension)
|
||||
{
|
||||
// Only "this" extension is ambiguous.
|
||||
if(!loc.MatchesAmbiguousExtension(*this))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if(loc.AmbiguousExtension)
|
||||
{
|
||||
// Only "loc" extension is ambiguous.
|
||||
if(!this->MatchesAmbiguousExtension(loc))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Neither extension is ambiguous.
|
||||
if(this->Name != loc.Name)
|
||||
const cmSourceFileLocation* loc1;
|
||||
const cmSourceFileLocation* loc2;
|
||||
if(this->AmbiguousExtension)
|
||||
{
|
||||
// Only "this" extension is ambiguous.
|
||||
loc1 = &loc;
|
||||
loc2 = this;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Only "loc" extension is ambiguous.
|
||||
loc1 = this;
|
||||
loc2 = &loc;
|
||||
}
|
||||
if(!loc1->MatchesAmbiguousExtension(*loc2))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -254,8 +251,9 @@ bool cmSourceFileLocation::Matches(cmSourceFileLocation const& loc)
|
|||
return false;
|
||||
}
|
||||
}
|
||||
else if(this->AmbiguousDirectory && loc.AmbiguousDirectory &&
|
||||
this->Makefile == loc.Makefile)
|
||||
else if(this->AmbiguousDirectory && loc.AmbiguousDirectory)
|
||||
{
|
||||
if (this->Makefile == loc.Makefile)
|
||||
{
|
||||
// Both sides have directories relative to the same location.
|
||||
if(this->Directory != loc.Directory)
|
||||
|
@ -263,7 +261,7 @@ bool cmSourceFileLocation::Matches(cmSourceFileLocation const& loc)
|
|||
return false;
|
||||
}
|
||||
}
|
||||
else if(this->AmbiguousDirectory && loc.AmbiguousDirectory)
|
||||
else
|
||||
{
|
||||
// Each side has a directory relative to a different location.
|
||||
// This can occur when referencing a source file from a different
|
||||
|
@ -276,6 +274,7 @@ bool cmSourceFileLocation::Matches(cmSourceFileLocation const& loc)
|
|||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if(this->AmbiguousDirectory)
|
||||
{
|
||||
// Compare possible directory combinations.
|
||||
|
|
Loading…
Reference in New Issue