summaryrefslogtreecommitdiff
path: root/utils/llvm-build/llvmbuild/componentinfo.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils/llvm-build/llvmbuild/componentinfo.py')
-rw-r--r--utils/llvm-build/llvmbuild/componentinfo.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/utils/llvm-build/llvmbuild/componentinfo.py b/utils/llvm-build/llvmbuild/componentinfo.py
index 737b857dfb..c32cc1aeb0 100644
--- a/utils/llvm-build/llvmbuild/componentinfo.py
+++ b/utils/llvm-build/llvmbuild/componentinfo.py
@@ -68,6 +68,21 @@ class ComponentInfo(object):
def get_llvmbuild_fragment(self):
abstract
+ def get_parent_target_group(self):
+ """get_parent_target_group() -> ComponentInfo or None
+
+ Return the nearest parent target group (if any), or None if the
+ component is not part of any target group.
+ """
+
+ # If this is a target group, return it.
+ if self.type_name == 'TargetGroup':
+ return self
+
+ # Otherwise recurse on the parent, if any.
+ if self.parent_instance:
+ return self.parent_instance.get_parent_target_group()
+
class GroupComponentInfo(ComponentInfo):
"""
Group components have no semantics as far as the build system are concerned,