summaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2024-12-09 09:34:33 -0800
committerDylan Baker <dylan@pnwbakers.com>2025-08-01 14:14:08 -0700
commitf0d121e06e45565956726779dce9a4741e70534f (patch)
tree129abcff9a6c2685521ce28dc9e94121b0c6adae /mesonbuild
parent05b39a29d70302210d3a7b94427882e2d0347c09 (diff)
downloadmeson-f0d121e06e45565956726779dce9a4741e70534f.tar.gz
interpreter: move dependency kwargs to shared module
We're going to use this in the Python module as well.
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/interpreter/interpreter.py3
-rw-r--r--mesonbuild/interpreter/type_checking.py5
-rw-r--r--mesonbuild/modules/python.py3
3 files changed, 9 insertions, 2 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index 4088b4e2b..2cf5b7a5b 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -62,6 +62,7 @@ from .type_checking import (
OUTPUT_KW,
DEFAULT_OPTIONS,
DEPENDENCIES_KW,
+ DEPENDENCY_KWS,
DEPENDS_KW,
DEPEND_FILES_KW,
DEPFILE_KW,
@@ -1789,7 +1790,7 @@ class Interpreter(InterpreterBase, HoldableObject):
@disablerIfNotFound
@permittedKwargs(permitted_dependency_kwargs)
@typed_pos_args('dependency', varargs=str, min_varargs=1)
- @typed_kwargs('dependency', DEFAULT_OPTIONS.evolve(since='0.38.0'), allow_unknown=True)
+ @typed_kwargs('dependency', *DEPENDENCY_KWS, allow_unknown=True)
def func_dependency(self, node: mparser.BaseNode, args: T.Tuple[T.List[str]], kwargs: kwtypes.FuncDependency) -> Dependency:
# Replace '' by empty list of names
names = [n for n in args[0] if n]
diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py
index a94e26bd6..ffa561975 100644
--- a/mesonbuild/interpreter/type_checking.py
+++ b/mesonbuild/interpreter/type_checking.py
@@ -866,3 +866,8 @@ PKGCONFIG_DEFINE_KW: KwargInfo = KwargInfo(
default=[],
convertor=_pkgconfig_define_convertor,
)
+
+
+DEPENDENCY_KWS: T.List[KwargInfo] = [
+ DEFAULT_OPTIONS.evolve(since='0.38.0'),
+]
diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
index 8d82a33f1..3c079609c 100644
--- a/mesonbuild/modules/python.py
+++ b/mesonbuild/modules/python.py
@@ -16,7 +16,7 @@ from ..dependencies.detect import get_dep_identifier, find_external_dependency
from ..dependencies.python import BasicPythonExternalProgram, python_factory, _PythonDependencyBase
from ..interpreter import extract_required_kwarg, permitted_dependency_kwargs, primitives as P_OBJ
from ..interpreter.interpreterobjects import _ExternalProgramHolder
-from ..interpreter.type_checking import NoneType, PRESERVE_PATH_KW, SHARED_MOD_KWS
+from ..interpreter.type_checking import NoneType, DEPENDENCY_KWS, PRESERVE_PATH_KW, SHARED_MOD_KWS
from ..interpreterbase import (
noPosargs, noKwargs, permittedKwargs, ContainerTypeInfo,
InvalidArguments, typed_pos_args, typed_kwargs, KwargInfo,
@@ -256,6 +256,7 @@ class PythonInstallation(_ExternalProgramHolder['PythonExternalProgram']):
@permittedKwargs(permitted_dependency_kwargs | {'embed'})
@FeatureNewKwargs('python_installation.dependency', '0.53.0', ['embed'])
@noPosargs
+ @typed_kwargs('python_installation.dependency', *DEPENDENCY_KWS, allow_unknown=True)
@InterpreterObject.method('dependency')
def dependency_method(self, args: T.List['TYPE_var'], kwargs: 'TYPE_kwargs') -> 'Dependency':
disabled, required, feature = extract_required_kwarg(kwargs, self.subproject)