summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmGlobalGenerator.cxx32
1 files changed, 14 insertions, 18 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index a610b3d..b7b4fba 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -2046,27 +2046,23 @@ bool cmGlobalGenerator::IsExcluded(cmLocalGenerator* root,
{
assert(gen);
- if(gen == root)
+ cmLocalGenerator* lg = gen;
+ while (lg)
{
- // No directory excludes itself.
- return false;
- }
-
- if(gen->GetMakefile()->GetPropertyAsBool("EXCLUDE_FROM_ALL"))
- {
- // This directory is excluded from its parent.
- return true;
- }
+ if(lg == root)
+ {
+ // No directory excludes itself.
+ return false;
+ }
- cmLocalGenerator* lg = gen->GetParent();
- if (!lg)
- {
- return false;
+ if(lg->GetMakefile()->GetPropertyAsBool("EXCLUDE_FROM_ALL"))
+ {
+ // This directory is excluded from its parent.
+ return true;
+ }
+ lg = lg->GetParent();
}
-
- // This directory is included in its parent. Check whether the
- // parent is excluded.
- return this->IsExcluded(root, lg);
+ return false;
}
bool cmGlobalGenerator::IsExcluded(cmLocalGenerator* root,