aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2022-08-22 10:34:35 -0400
committerXavier Claessens <xclaesse@gmail.com>2022-08-23 08:13:55 -0400
commit75b8dc5c9ef548b4cc15483af5106b3e79dfd36e (patch)
tree963211606b41776fcc2542629040e7c3fc21d213 /mesonbuild/interpreter
parent3e73d4d77d1d36b15d06c8b3c4a7ee6ad77847b6 (diff)
downloadmeson-75b8dc5c9ef548b4cc15483af5106b3e79dfd36e.zip
meson-75b8dc5c9ef548b4cc15483af5106b3e79dfd36e.tar.gz
meson-75b8dc5c9ef548b4cc15483af5106b3e79dfd36e.tar.bz2
pkgconfig: Variables can be a single string
It used to be listified and libxml2 wrap relies on that.
Diffstat (limited to 'mesonbuild/interpreter')
-rw-r--r--mesonbuild/interpreter/type_checking.py12
1 files changed, 9 insertions, 3 deletions
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={},