aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2022-01-27 12:30:42 -0800
committerEli Schwartz <eschwartz93@gmail.com>2022-01-27 17:22:41 -0500
commit5d31735c1e5e2cfac581ebaf82442b1449aa18b8 (patch)
treeba394153b509d7187fe39e681c1806f5e8141156
parentfa4f96427a02b3b52499c3f38a6982d0230c147b (diff)
downloadmeson-5d31735c1e5e2cfac581ebaf82442b1449aa18b8.zip
meson-5d31735c1e5e2cfac581ebaf82442b1449aa18b8.tar.gz
meson-5d31735c1e5e2cfac581ebaf82442b1449aa18b8.tar.bz2
modules/gnome: Allow gdbus_annotations to take an empty list again
This was allows up to 0.61.0 (including with the initial type annotations), but was accidentally broken by fixes for other bugs in 0.61.1. Fixes: #9883
-rw-r--r--mesonbuild/modules/gnome.py5
-rw-r--r--test cases/frameworks/7 gnome/gdbus/meson.build10
2 files changed, 13 insertions, 2 deletions
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index a6ae3f4..ffdfd42 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -224,12 +224,13 @@ _MK_ENUMS_COMMON_KWS: T.List[KwargInfo] = [
]
def annotations_validator(annotations: T.List[T.Union[str, T.List[str]]]) -> T.Optional[str]:
-
"""Validate gdbus-codegen annotations argument"""
badlist = 'must be made up of 3 strings for ELEMENT, KEY, and VALUE'
- if all(isinstance(annot, str) for annot in annotations):
+ if not annotations:
+ return None
+ elif all(isinstance(annot, str) for annot in annotations):
if len(annotations) == 3:
return None
else:
diff --git a/test cases/frameworks/7 gnome/gdbus/meson.build b/test cases/frameworks/7 gnome/gdbus/meson.build
index a786d24..682abff 100644
--- a/test cases/frameworks/7 gnome/gdbus/meson.build
+++ b/test cases/frameworks/7 gnome/gdbus/meson.build
@@ -6,6 +6,16 @@ gdbus_src = gnome.gdbus_codegen('generated-gdbus-no-docbook',
['com.example.Hello()', 'org.freedesktop.DBus.Deprecated', 'true']
],
)
+
+# check that empty annotations work
+gdbus_src2 = gnome.gdbus_codegen(
+ 'generated-gdbus-no-docbook2',
+ 'data/com.example.Sample.xml',
+ interface_prefix : 'com.example.',
+ namespace : 'Sample',
+ annotations : [],
+)
+
assert(gdbus_src.length() == 2, 'expected 2 targets')
assert(gdbus_src[0].full_path().endswith('.c'), 'expected 1 c source file')
assert(gdbus_src[1].full_path().endswith('.h'), 'expected 1 c header file')