From 75b8dc5c9ef548b4cc15483af5106b3e79dfd36e Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Mon, 22 Aug 2022 10:34:35 -0400 Subject: pkgconfig: Variables can be a single string It used to be listified and libxml2 wrap relies on that. --- mesonbuild/interpreter/type_checking.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'mesonbuild/interpreter') diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py index 09f734b..69fc27d 100644 --- a/mesonbuild/interpreter/type_checking.py +++ b/mesonbuild/interpreter/type_checking.py @@ -109,7 +109,9 @@ def _lower_strlist(input: T.List[str]) -> T.List[str]: return [i.lower() for i in input] -def variables_validator(contents: T.Union[T.List[str], T.Dict[str, str]]) -> T.Optional[str]: +def variables_validator(contents: T.Union[str, T.List[str], T.Dict[str, str]]) -> T.Optional[str]: + if isinstance(contents, str): + contents = [contents] if isinstance(contents, dict): variables = contents else: @@ -130,7 +132,9 @@ def variables_validator(contents: T.Union[T.List[str], T.Dict[str, str]]) -> T.O return None -def variables_convertor(contents: T.Union[T.List[str], T.Dict[str, str]]) -> T.Dict[str, str]: +def variables_convertor(contents: T.Union[str, T.List[str], T.Dict[str, str]]) -> T.Dict[str, str]: + if isinstance(contents, str): + contents = [contents] if isinstance(contents, dict): return contents variables = {} @@ -433,7 +437,9 @@ SOURCES_KW: KwargInfo[T.List[T.Union[str, File, CustomTarget, CustomTargetIndex, VARIABLES_KW: KwargInfo[T.Dict[str, str]] = KwargInfo( 'variables', - (ContainerTypeInfo(list, str), ContainerTypeInfo(dict, str)), + # str is listified by validator/convertor, cannot use listify=True here because + # that would listify dict too. + (str, ContainerTypeInfo(list, str), ContainerTypeInfo(dict, str)), # type: ignore validator=variables_validator, convertor=variables_convertor, default={}, -- cgit v1.1