summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2024-12-06 12:31:23 -0800
committerDylan Baker <dylan@pnwbakers.com>2025-10-20 15:15:53 -0700
commita9c157b7c30534a47ae2963e542fc60a80d61584 (patch)
tree38058b6dae58890412405ed317fe39e2b19fdd35
parent69da2bedefe13497d0e0181584d2dc4b163e8620 (diff)
downloadmeson-a9c157b7c30534a47ae2963e542fc60a80d61584.tar.gz
interpreter: port dependency fallback to typed_kwargs
-rw-r--r--mesonbuild/interpreter/interpreter.py3
-rw-r--r--mesonbuild/interpreter/kwargs.py3
-rw-r--r--mesonbuild/interpreter/type_checking.py1
3 files changed, 4 insertions, 3 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index bd93bc426..648278426 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -1801,10 +1801,9 @@ class Interpreter(InterpreterBase, HoldableObject):
names = [n for n in args[0] if n]
if len(names) > 1:
FeatureNew('dependency with more than one name', '0.60.0').use(self.subproject)
- fallback = kwargs.get('fallback')
default_options = kwargs.get('default_options')
df = DependencyFallbacksHolder(self, names, kwargs['allow_fallback'], default_options)
- df.set_fallback(fallback)
+ df.set_fallback(kwargs['fallback'])
not_found_message = kwargs.get('not_found_message', '')
if not isinstance(not_found_message, str):
raise InvalidArguments('The not_found_message must be a string.')
diff --git a/mesonbuild/interpreter/kwargs.py b/mesonbuild/interpreter/kwargs.py
index d14b42d04..6b4ca2d3a 100644
--- a/mesonbuild/interpreter/kwargs.py
+++ b/mesonbuild/interpreter/kwargs.py
@@ -493,9 +493,10 @@ class FuncDeclareDependency(TypedDict):
class FuncDependency(TypedDict):
- default_options: T.Dict[OptionKey, options.ElementaryOptionValues]
allow_fallback: T.Optional[bool]
cmake_args: T.List[str]
cmake_module_path: T.List[str]
cmake_package_version: str
components: T.List[str]
+ default_options: T.Dict[OptionKey, options.ElementaryOptionValues]
+ fallback: T.Union[str, T.List[str], None]
diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py
index f9462e9d6..9e61a9698 100644
--- a/mesonbuild/interpreter/type_checking.py
+++ b/mesonbuild/interpreter/type_checking.py
@@ -903,4 +903,5 @@ DEPENDENCY_KWS: T.List[KwargInfo] = [
KwargInfo('cmake_module_path', ContainerTypeInfo(list, str), listify=True, default=[], since='0.50.0'),
KwargInfo('cmake_package_version', str, default='', since='0.57.0'),
KwargInfo('components', ContainerTypeInfo(list, str), listify=True, default=[], since='0.54.0'),
+ KwargInfo('fallback', (ContainerTypeInfo(list, str), str, NoneType), since='0.54.0'),
]