aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreterbase.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/interpreterbase.py')
-rw-r--r--mesonbuild/interpreterbase.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py
index c0064ab..aee1c87 100644
--- a/mesonbuild/interpreterbase.py
+++ b/mesonbuild/interpreterbase.py
@@ -145,6 +145,17 @@ def noArgsFlattening(f):
setattr(f, 'no-args-flattening', True)
return f
+def disablerIfNotFound(f):
+ @wraps(f)
+ def wrapped(*wrapped_args, **wrapped_kwargs):
+ kwargs = _get_callee_args(wrapped_args)[3]
+ disabler = kwargs.pop('disabler', False)
+ ret = f(*wrapped_args, **wrapped_kwargs)
+ if disabler and not ret.held_object.found():
+ return Disabler()
+ return ret
+ return wrapped
+
class permittedKwargs:
def __init__(self, permitted):