summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2024-12-06 12:11:31 -0800
committerDylan Baker <dylan@pnwbakers.com>2025-10-20 15:15:53 -0700
commitae89ca1015fd1d8306bbb78c31f1bde53375a712 (patch)
treee60d2a3987295c937cfd690f944183fcb293ceb3
parent8c7f8d9dc2887b165d469a2362935f27aae44ac1 (diff)
downloadmeson-ae89ca1015fd1d8306bbb78c31f1bde53375a712.tar.gz
interpreter: port dependency(allow_fallback) to typed_kwargs
-rw-r--r--mesonbuild/interpreter/interpreter.py6
-rw-r--r--mesonbuild/interpreter/kwargs.py1
-rw-r--r--mesonbuild/interpreter/type_checking.py1
3 files changed, 3 insertions, 5 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index 861059f83..0f6114199 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -1789,7 +1789,6 @@ class Interpreter(InterpreterBase, HoldableObject):
# When adding kwargs, please check if they make sense in dependencies.get_dep_identifier()
@FeatureNewKwargs('dependency', '0.57.0', ['cmake_package_version'])
- @FeatureNewKwargs('dependency', '0.56.0', ['allow_fallback'])
@FeatureNewKwargs('dependency', '0.54.0', ['components'])
@FeatureNewKwargs('dependency', '0.52.0', ['include_type'])
@FeatureNewKwargs('dependency', '0.50.0', ['not_found_message', 'cmake_module_path', 'cmake_args'])
@@ -1804,12 +1803,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)
- allow_fallback = kwargs.get('allow_fallback')
- if allow_fallback is not None and not isinstance(allow_fallback, bool):
- raise InvalidArguments('"allow_fallback" argument must be boolean')
fallback = kwargs.get('fallback')
default_options = kwargs.get('default_options')
- df = DependencyFallbacksHolder(self, names, allow_fallback, default_options)
+ df = DependencyFallbacksHolder(self, names, kwargs['allow_fallback'], default_options)
df.set_fallback(fallback)
not_found_message = kwargs.get('not_found_message', '')
if not isinstance(not_found_message, str):
diff --git a/mesonbuild/interpreter/kwargs.py b/mesonbuild/interpreter/kwargs.py
index fe45f3b2b..481c126f4 100644
--- a/mesonbuild/interpreter/kwargs.py
+++ b/mesonbuild/interpreter/kwargs.py
@@ -494,3 +494,4 @@ class FuncDeclareDependency(TypedDict):
class FuncDependency(TypedDict):
default_options: T.Dict[OptionKey, options.ElementaryOptionValues]
+ allow_fallback: T.Optional[bool]
diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py
index 946635374..4f8e04fe1 100644
--- a/mesonbuild/interpreter/type_checking.py
+++ b/mesonbuild/interpreter/type_checking.py
@@ -898,4 +898,5 @@ PKGCONFIG_DEFINE_KW: KwargInfo = KwargInfo(
DEPENDENCY_KWS: T.List[KwargInfo] = [
DEFAULT_OPTIONS.evolve(since='0.38.0'),
+ KwargInfo('allow_fallback', (bool, NoneType), since='0.56.0'),
]