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

This commit is contained in:
Stephen Kelly committed 2015-08-24 20:03:29 +02:00
1 parent af9fc27753
commit 45f5200396
1 file changed
+6 -5
+6 -5
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;
}