summaryrefslogtreecommitdiffstats
path: root/waftools
diff options
context:
space:
mode:
Diffstat (limited to 'waftools')
-rw-r--r--waftools/dependencies.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/waftools/dependencies.py b/waftools/dependencies.py
index 16fd2d5f57..f83f29fc38 100644
--- a/waftools/dependencies.py
+++ b/waftools/dependencies.py
@@ -34,6 +34,7 @@ class Dependency(object):
self.ctx.start_msg('Checking for {0}'.format(self.desc))
try:
+ self.check_group_disabled()
self.check_disabled()
self.check_any_dependencies()
self.check_dependencies()
@@ -49,6 +50,14 @@ class Dependency(object):
self.check_autodetect_func()
+ def check_group_disabled(self):
+ if 'groups' in self.attributes:
+ groups = self.attributes['groups']
+ disabled = (self.enabled_option(g) == False for g in groups)
+ if any(disabled):
+ self.skip()
+ raise DependencyError
+
def check_disabled(self):
if self.enabled_option() == False:
self.skip()
@@ -89,15 +98,15 @@ the autodetection check failed.".format(self.identifier)
self.fail()
self.fatal_if_needed()
- def enabled_option(self):
+ def enabled_option(self, identifier=None):
try:
- return getattr(self.ctx.options, self.enabled_option_repr())
+ return getattr(self.ctx.options, self.enabled_option_repr(identifier))
except AttributeError:
pass
return None
- def enabled_option_repr(self):
- return "enable_{0}".format(self.identifier)
+ def enabled_option_repr(self, identifier):
+ return "enable_{0}".format(identifier or self.identifier)
def success(self, depname):
self.ctx.mark_satisfied(depname)