1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
gdbus_src = gnome.gdbus_codegen('generated-gdbus-no-docbook',
'data/com.example.Sample.xml',
interface_prefix : 'com.example.',
namespace : 'Sample',
annotations : [
['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')
sample_xml = configure_file(input: 'data/com.example.Sample.xml',
output: 'com.example.Sample.xml',
copy: true)
gdbus_src = gnome.gdbus_codegen('generated-gdbus-no-docbook-files-posarg',
sample_xml,
interface_prefix : 'com.example.',
namespace : 'Sample',
annotations : [
['com.example.Hello()', 'org.freedesktop.DBus.Deprecated', 'true']
],
)
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')
gdbus_src = gnome.gdbus_codegen('generated-gdbus',
sources : files('data/com.example.Sample.xml'),
interface_prefix : 'com.example.',
namespace : 'Sample',
annotations : [
['com.example.Hello()', 'org.freedesktop.DBus.Deprecated', 'true'],
['com.example.Bye()', 'org.freedesktop.DBus.Deprecated', 'true'],
],
docbook : 'generated-gdbus-doc',
install_header : true,
install_dir : get_option('includedir')
)
assert(gdbus_src.length() == 3, 'expected 3 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')
if not pretend_glib_old and glib.version().version_compare('>=2.51.3')
includes = []
else
includes = include_directories('..')
endif
# check that custom targets work
gdbus_xml_ct = custom_target('built xml sources for gdbus',
output: 'com.example.SampleCustomTarget.xml',
input: 'data/com.example.Sample.xml',
command : [copyfile, '@INPUT@', '@OUTPUT@'])
gdbus_src_ct = gnome.gdbus_codegen(
'generated-gdbus-customtarget-src',
gdbus_xml_ct,
interface_prefix : 'com.example.',
namespace : 'Sample',
annotations : [],
)
gdbus_src_cti = gnome.gdbus_codegen(
'generated-gdbus-customtargetindex-src',
gdbus_xml_ct[0],
interface_prefix : 'com.example.',
namespace : 'Sample',
annotations : [],
)
gdbus_src_gen = gnome.gdbus_codegen(
'generated-gdbus-generator-src',
copyfile_gen.process('data/com.example.Sample.xml'),
interface_prefix : 'com.example.',
namespace : 'Sample',
annotations : [],
)
gdbus_exe = executable('gdbus-test', 'gdbusprog.c',
gdbus_src,
include_directories : includes,
dependencies : giounix)
test('gdbus', gdbus_exe)
|