summaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2025-06-16 08:44:10 -0700
committerDylan Baker <dylan@pnwbakers.com>2025-10-08 10:42:41 -0700
commita5094a134aa8b2a971153ed8446f27d986f476e7 (patch)
tree821380b5b6f801d66181abad34ef17f499999f8f /mesonbuild/interpreter
parent8d69552dbd61144cdeab4ac93137db672c62fd52 (diff)
downloadmeson-a5094a134aa8b2a971153ed8446f27d986f476e7.tar.gz
vala: add a method to get a generated vala header
This allows targets that don't link with a vala target to rely on the header generation.
Diffstat (limited to 'mesonbuild/interpreter')
-rw-r--r--mesonbuild/interpreter/interpreterobjects.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/mesonbuild/interpreter/interpreterobjects.py b/mesonbuild/interpreter/interpreterobjects.py
index 17ba989d3..db6782ceb 100644
--- a/mesonbuild/interpreter/interpreterobjects.py
+++ b/mesonbuild/interpreter/interpreterobjects.py
@@ -988,6 +988,19 @@ class BuildTargetHolder(ObjectHolder[_BuildTarget]):
def name_method(self, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> str:
return self._target_object.name
+ @FeatureNew('vala_header', '1.10.0')
+ @noPosargs
+ @noKwargs
+ @InterpreterObject.method('vala_header')
+ def vala_header_method(self, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> mesonlib.File:
+ if not hasattr(self._target_object, 'vala_header'):
+ raise mesonlib.MesonException("Attempted to get a Vala header from a target that doesn't generate one")
+
+ assert self.interpreter.backend is not None, 'for mypy'
+ return mesonlib.File.from_built_file(
+ self.interpreter.backend.get_target_dir(self._target_object), self._target_object.vala_header)
+
+
class ExecutableHolder(BuildTargetHolder[build.Executable]):
pass