diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2022-02-23 16:56:27 -0500 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2022-02-28 09:03:27 -0500 |
commit | 6acfe48f32110671a0adf80ad3497a35105b265d (patch) | |
tree | 5fd822233653e9670e2aea820b59be1932aa2075 /mesonbuild/interpreter/interpreter.py | |
parent | ac4f8d0088e7be5fc37f4611a7fadb2361c945f2 (diff) | |
download | meson-6acfe48f32110671a0adf80ad3497a35105b265d.zip meson-6acfe48f32110671a0adf80ad3497a35105b265d.tar.gz meson-6acfe48f32110671a0adf80ad3497a35105b265d.tar.bz2 |
Allow setting method/separator in environment() and meson.add_devenv()
Diffstat (limited to 'mesonbuild/interpreter/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter/interpreter.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py index 30d0e4c..380cc1d 100644 --- a/mesonbuild/interpreter/interpreter.py +++ b/mesonbuild/interpreter/interpreter.py @@ -63,6 +63,8 @@ from .type_checking import ( DEPFILE_KW, DISABLER_KW, ENV_KW, + ENV_METHOD_KW, + ENV_SEPARATOR_KW, INSTALL_KW, INSTALL_MODE_KW, CT_INSTALL_TAG_KW, @@ -71,6 +73,7 @@ from .type_checking import ( REQUIRED_KW, NoneType, in_set_validator, + env_convertor_with_method ) from . import primitives as P_OBJ @@ -2610,9 +2613,9 @@ external dependencies (including libraries) must go to "dependencies".''') for lang in kwargs['language']: argsdict[lang] = argsdict.get(lang, []) + args - @noKwargs @noArgsFlattening @typed_pos_args('environment', optargs=[(str, list, dict)]) + @typed_kwargs('environment', ENV_METHOD_KW, ENV_SEPARATOR_KW.evolve(since='0.62.0')) def func_environment(self, node: mparser.FunctionNode, args: T.Tuple[T.Union[None, str, T.List['TYPE_var'], T.Dict[str, 'TYPE_var']]], kwargs: 'TYPE_kwargs') -> build.EnvironmentVariables: init = args[0] @@ -2621,7 +2624,9 @@ external dependencies (including libraries) must go to "dependencies".''') msg = ENV_KW.validator(init) if msg: raise InvalidArguments(f'"environment": {msg}') - return ENV_KW.convertor(init) + if isinstance(init, dict) and any(i for i in init.values() if isinstance(i, list)): + FeatureNew.single_use('List of string in dictionary value', '0.62.0', self.subproject, location=node) + return env_convertor_with_method(init, kwargs['method'], kwargs['separator']) return build.EnvironmentVariables() @typed_pos_args('join_paths', varargs=str, min_varargs=1) |