diff options
| author | Dylan Baker <dylan@pnwbakers.com> | 2024-12-06 12:38:28 -0800 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-10-20 15:15:53 -0700 |
| commit | 8b1c5c9944ba0b28524d11a8d274f81733e4149b (patch) | |
| tree | 975cd03b29a80a2580ea5245ca7cb0d6db17a32f /mesonbuild/interpreter/interpreterobjects.py | |
| parent | a9c157b7c30534a47ae2963e542fc60a80d61584 (diff) | |
| download | meson-8b1c5c9944ba0b28524d11a8d274f81733e4149b.tar.gz | |
interpreter: port dependency include_type to typed_kargs
The cleanup this allows lower down points out that we don't properly
validate the value passed to `as_system()`. I have no idea what happens
if you pass a non-valid value, but it's a bug and I've simply made it a
hard error. We can re-assess if necessary.
Diffstat (limited to 'mesonbuild/interpreter/interpreterobjects.py')
| -rw-r--r-- | mesonbuild/interpreter/interpreterobjects.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/mesonbuild/interpreter/interpreterobjects.py b/mesonbuild/interpreter/interpreterobjects.py index 4ff7e903e..b6137d175 100644 --- a/mesonbuild/interpreter/interpreterobjects.py +++ b/mesonbuild/interpreter/interpreterobjects.py @@ -31,6 +31,7 @@ import typing as T if T.TYPE_CHECKING: from . import kwargs from ..cmake.interpreter import CMakeInterpreter + from ..dependencies.base import IncludeType from ..envconfig import MachineInfo from ..interpreterbase import FeatureCheckBase, SubProject, TYPE_var, TYPE_kwargs, TYPE_nvar, TYPE_nkwargs from .interpreter import Interpreter @@ -569,7 +570,16 @@ class DependencyHolder(ObjectHolder[Dependency]): @typed_pos_args('dependency.as_system', optargs=[str]) @InterpreterObject.method('as_system') def as_system_method(self, args: T.Tuple[T.Optional[str]], kwargs: TYPE_kwargs) -> Dependency: - return self.held_object.generate_system_dependency(args[0] or 'system') + include_type: IncludeType + if args[0] is None: + include_type = 'system' + elif args[0] not in {'preserve', 'system', 'non-system'}: + raise InvalidArguments( + 'Dependency.as_system: if an argument is given it must be one ' + f'of: "preserve", "system", "non-system", not: "{args[0]}"') + else: + include_type = T.cast('IncludeType', args[0]) + return self.held_object.generate_system_dependency(include_type) @FeatureNew('dependency.as_link_whole', '0.56.0') @noKwargs |
