cmGlobalGenerator: Implement IsExcluded in terms of cmState::Snapshot.

This commit is contained in:
Stephen Kelly 2015-08-02 09:57:25 +02:00
parent af9fc27753
commit 45f5200396
1 changed files with 6 additions and 5 deletions

View File

@ -2046,21 +2046,22 @@ bool cmGlobalGenerator::IsExcluded(cmLocalGenerator* root,
{
assert(gen);
cmLocalGenerator* lg = gen;
while (lg)
cmState::Snapshot rootSnp = root->GetStateSnapshot();
cmState::Snapshot snp = gen->GetStateSnapshot();
while (snp.IsValid())
{
if(lg == root)
if(snp == rootSnp)
{
// No directory excludes itself.
return false;
}
if(lg->GetMakefile()->GetPropertyAsBool("EXCLUDE_FROM_ALL"))
if(snp.GetDirectory().GetPropertyAsBool("EXCLUDE_FROM_ALL"))
{
// This directory is excluded from its parent.
return true;
}
lg = lg->GetParent();
snp = snp.GetBuildsystemDirectoryParent();
}
return false;
}