summaryrefslogtreecommitdiff
path: root/mesonbuild/mparser.py
diff options
context:
space:
mode:
authorVolker Weißmann <volker.weissmann@gmx.de>2025-03-24 18:23:56 +0100
committerDylan Baker <dylan@pnwbakers.com>2025-05-29 09:20:27 -0700
commitcab5c8e2b73fc6084ead0f6bf61a649e0c4be1f5 (patch)
treee093fcdab64ebe07b05a422e774486f2cc404462 /mesonbuild/mparser.py
parentf042e82e6a5c18f7863cd14bf717d3d021f0c0d7 (diff)
downloadmeson-cab5c8e2b73fc6084ead0f6bf61a649e0c4be1f5.tar.gz
rewriter: Rewrite how we add/remove source files
Change the semantics of IntrospectionBuildTarget.source_nodes and IntrospectionBuildTarget.extra_files . The rewriter and the static introspection tool used to be very broken, now it is *less* broken, hence we add some tests in this commit. Fixes #11763
Diffstat (limited to 'mesonbuild/mparser.py')
-rw-r--r--mesonbuild/mparser.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/mesonbuild/mparser.py b/mesonbuild/mparser.py
index a0a8d273e..3dd8f0a5e 100644
--- a/mesonbuild/mparser.py
+++ b/mesonbuild/mparser.py
@@ -369,6 +369,13 @@ class ArgumentNode(BaseNode):
mlog.warning('This will be an error in Meson 2.0.')
self.kwargs[name] = value
+ def get_kwarg_or_default(self, name: str, default: BaseNode) -> BaseNode:
+ for k, v in self.kwargs.items():
+ assert isinstance(k, IdNode)
+ if k.value == name:
+ return v
+ return default
+
def set_kwarg_no_check(self, name: BaseNode, value: BaseNode) -> None:
self.kwargs[name] = value