aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreterbase.py
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2019-07-19 14:34:16 +0400
committerDylan Baker <dylan@pnwbakers.com>2019-07-23 08:46:26 -0700
commit381110143493ef12b62e79931002cc77dd47a182 (patch)
tree63bdc67c8216ab3f96aa1353c0e9f9316b2aa0c5 /mesonbuild/interpreterbase.py
parentc8a6a44850485b61eca520f0153f5532f871db5e (diff)
downloadmeson-381110143493ef12b62e79931002cc77dd47a182.zip
meson-381110143493ef12b62e79931002cc77dd47a182.tar.gz
meson-381110143493ef12b62e79931002cc77dd47a182.tar.bz2
meson: handle nested disabler
Fixes #5659
Diffstat (limited to 'mesonbuild/interpreterbase.py')
-rw-r--r--mesonbuild/interpreterbase.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py
index 71a4ef3..b5510cf 100644
--- a/mesonbuild/interpreterbase.py
+++ b/mesonbuild/interpreterbase.py
@@ -337,20 +337,25 @@ class Disabler(InterpreterObject):
def found_method(self, args, kwargs):
return False
-def is_disabler(i):
+def is_disabler(i) -> bool:
return isinstance(i, Disabler)
-def is_disabled(args, kwargs):
+def is_arg_disabled(arg) -> bool:
+ if is_disabler(arg):
+ return True
+ if isinstance(arg, list):
+ for i in arg:
+ if is_arg_disabled(i):
+ return True
+ return False
+
+def is_disabled(args, kwargs) -> bool:
for i in args:
- if isinstance(i, Disabler):
+ if is_arg_disabled(i):
return True
for i in kwargs.values():
- if isinstance(i, Disabler):
+ if is_arg_disabled(i):
return True
- if isinstance(i, list):
- for j in i:
- if isinstance(j, Disabler):
- return True
return False
class InterpreterBase: