summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2025-10-15 11:22:54 -0700
committerDylan Baker <dylan@pnwbakers.com>2025-10-20 09:22:25 -0700
commit16d84666b9072245ff7c5960ad9f1948fbdfd32b (patch)
treee1672f3029a03c9e72fbbf5dbba63bcaeb66e3fc
parent2a4be34b8e981ddb2b2726b55d0a3d2fe78632a3 (diff)
downloadmeson-16d84666b9072245ff7c5960ad9f1948fbdfd32b.tar.gz
interpreter|build: Add type checking for vala specific arguments
-rw-r--r--mesonbuild/build.py12
-rw-r--r--mesonbuild/interpreter/kwargs.py3
-rw-r--r--mesonbuild/interpreter/type_checking.py3
3 files changed, 12 insertions, 6 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index cf4f31a1a..201cb9a79 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -102,9 +102,9 @@ if T.TYPE_CHECKING:
rust_abi: Literal['c', 'rust']
rust_crate_type: str # Literal?
rust_dependency_map: T.Dict[str, str]
- vala_gir: str
- vala_header: str
- vala_vapi: str
+ vala_gir: T.Optional[str]
+ vala_header: T.Optional[str]
+ vala_vapi: T.Optional[str]
win_subsystem: str
_allow_no_sources: bool
@@ -1247,9 +1247,9 @@ class BuildTarget(Target):
self.add_pch('cpp', extract_as_list(kwargs, 'cpp_pch'))
if not isinstance(self, Executable) or kwargs.get('export_dynamic', False):
- self.vala_header = kwargs.get('vala_header', self.name + '.h')
- self.vala_vapi = kwargs.get('vala_vapi', self.name + '.vapi')
- self.vala_gir = kwargs.get('vala_gir', None)
+ self.vala_header = kwargs.get('vala_header') or self.name + '.h'
+ self.vala_vapi = kwargs.get('vala_vapi') or self.name + '.vapi'
+ self.vala_gir = kwargs.get('vala_gir')
self.link_args = extract_as_list(kwargs, 'link_args')
for i in self.link_args:
diff --git a/mesonbuild/interpreter/kwargs.py b/mesonbuild/interpreter/kwargs.py
index e95d47341..fe45f3b2b 100644
--- a/mesonbuild/interpreter/kwargs.py
+++ b/mesonbuild/interpreter/kwargs.py
@@ -350,6 +350,9 @@ class _BaseBuildTarget(TypedDict):
override_options: T.Dict[OptionKey, options.ElementaryOptionValues]
depend_files: NotRequired[T.List[File]]
resources: T.List[str]
+ vala_header: T.Optional[str]
+ vala_vapi: T.Optional[str]
+ vala_gir: T.Optional[str]
class _BuildTarget(_BaseBuildTarget):
diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py
index 4f961bb60..946635374 100644
--- a/mesonbuild/interpreter/type_checking.py
+++ b/mesonbuild/interpreter/type_checking.py
@@ -673,6 +673,9 @@ _BUILD_TARGET_KWS: T.List[KwargInfo] = [
validator=in_set_validator(set(compilers.all_languages)),
since='0.51.0',
),
+ KwargInfo('vala_gir', (str, NoneType)),
+ KwargInfo('vala_header', (str, NoneType)),
+ KwargInfo('vala_vapi', (str, NoneType)),
]
def _validate_win_subsystem(value: T.Optional[str]) -> T.Optional[str]: