summaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter/interpreterobjects.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2024-12-06 12:38:28 -0800
committerDylan Baker <dylan@pnwbakers.com>2025-10-20 15:15:53 -0700
commit8b1c5c9944ba0b28524d11a8d274f81733e4149b (patch)
tree975cd03b29a80a2580ea5245ca7cb0d6db17a32f /mesonbuild/interpreter/interpreterobjects.py
parenta9c157b7c30534a47ae2963e542fc60a80d61584 (diff)
downloadmeson-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.py12
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