]> git.proxmox.com Git - mirror_qemu.git/blame - qapi/meson.build
Merge tag 'pull-vfio-20230630' of https://github.com/legoater/qemu into staging
[mirror_qemu.git] / qapi / meson.build
CommitLineData
a81df1b6
PB
1util_ss.add(files(
2 'opts-visitor.c',
3 'qapi-clone-visitor.c',
4 'qapi-dealloc-visitor.c',
18fa3ebc 5 'qapi-forward-visitor.c',
a81df1b6
PB
6 'qapi-util.c',
7 'qapi-visit-core.c',
a81df1b6
PB
8 'qobject-input-visitor.c',
9 'qobject-output-visitor.c',
10 'string-input-visitor.c',
11 'string-output-visitor.c',
12))
f9429c67
DB
13if have_system
14 util_ss.add(files('qapi-type-helpers.c'))
15endif
e0091133 16if have_system or have_tools or have_ga
1935e0e4
PMD
17 util_ss.add(files(
18 'qmp-dispatch.c',
19 'qmp-event.c',
20 'qmp-registry.c',
21 ))
22endif
a81df1b6
PB
23
24qapi_all_modules = [
a81df1b6 25 'authz',
a81df1b6 26 'block',
5daa6bfd
KW
27 'block-core',
28 'block-export',
a81df1b6
PB
29 'char',
30 'common',
6dd75472 31 'compat',
a81df1b6
PB
32 'control',
33 'crypto',
415442a1 34 'cxl',
a81df1b6
PB
35 'dump',
36 'error',
37 'introspect',
38 'job',
39 'machine',
40 'machine-target',
41 'migration',
42 'misc',
43 'misc-target',
44 'net',
45 'pragma',
a81df1b6 46 'qom',
43d7e1d7 47 'replay',
a81df1b6
PB
48 'run-state',
49 'sockets',
b9f88dc0 50 'stats',
a81df1b6
PB
51 'trace',
52 'transaction',
a5ebce38 53 'virtio',
50186051 54 'yank',
a81df1b6 55]
9b45a025
PMD
56if have_system
57 qapi_all_modules += [
7fdb383d
PMD
58 'acpi',
59 'audio',
14c9fd16 60 'cryptodev',
9b45a025 61 'qdev',
7fdb383d
PMD
62 'pci',
63 'rdma',
64 'rocker',
65 'tpm',
9b45a025
PMD
66 ]
67endif
c2651c0e
PMD
68if have_system or have_tools
69 qapi_all_modules += [
70 'ui',
71 ]
72endif
a81df1b6 73
a81df1b6
PB
74qapi_nonmodule_outputs = [
75 'qapi-introspect.c', 'qapi-introspect.h',
76 'qapi-types.c', 'qapi-types.h',
77 'qapi-visit.h', 'qapi-visit.c',
78 'qapi-commands.h', 'qapi-commands.c',
79 'qapi-init-commands.h', 'qapi-init-commands.c',
80 'qapi-events.h', 'qapi-events.c',
81 'qapi-emit-events.c', 'qapi-emit-events.h',
82]
83
84# First build all sources
85qapi_util_outputs = [
86 'qapi-builtin-types.c', 'qapi-builtin-visit.c',
87 'qapi-builtin-types.h', 'qapi-builtin-visit.h',
88]
89
90qapi_inputs = []
91qapi_specific_outputs = []
92foreach module : qapi_all_modules
93 qapi_inputs += [ files(module + '.json') ]
94 qapi_module_outputs = [
95 'qapi-types-@0@.c'.format(module),
96 'qapi-types-@0@.h'.format(module),
97 'qapi-visit-@0@.c'.format(module),
98 'qapi-visit-@0@.h'.format(module),
a81df1b6 99 ]
a0e61807
PMD
100 if have_system or have_tools
101 qapi_module_outputs += [
102 'qapi-events-@0@.c'.format(module),
103 'qapi-events-@0@.h'.format(module),
104 'qapi-commands-@0@.c'.format(module),
105 'qapi-commands-@0@.h'.format(module),
b83a80e8 106 'qapi-commands-@0@.trace-events'.format(module),
a0e61807
PMD
107 ]
108 endif
a81df1b6
PB
109 if module.endswith('-target')
110 qapi_specific_outputs += qapi_module_outputs
111 else
112 qapi_util_outputs += qapi_module_outputs
113 endif
114endforeach
115
116qapi_files = custom_target('shared QAPI source files',
4ac2ee19 117 output: qapi_util_outputs + qapi_specific_outputs + qapi_nonmodule_outputs,
a81df1b6 118 input: [ files('qapi-schema.json') ],
761a1a48 119 command: [ qapi_gen, '-o', 'qapi', '-b', '@INPUT0@' ],
a81df1b6
PB
120 depend_files: [ qapi_inputs, qapi_gen_depends ])
121
122# Now go through all the outputs and add them to the right sourceset.
123# These loops must be synchronized with the output of the above custom target.
124
125i = 0
126foreach output : qapi_util_outputs
127 if output.endswith('.h')
128 genh += qapi_files[i]
129 endif
b83a80e8
VSO
130 if output.endswith('.trace-events')
131 qapi_trace_events += qapi_files[i]
132 endif
a81df1b6
PB
133 util_ss.add(qapi_files[i])
134 i = i + 1
135endforeach
136
5242523b
MAL
137foreach output : qapi_specific_outputs + qapi_nonmodule_outputs
138 if output.endswith('.h')
139 genh += qapi_files[i]
140 endif
b83a80e8
VSO
141 if output.endswith('.trace-events')
142 qapi_trace_events += qapi_files[i]
143 endif
c7b64948 144 specific_ss.add(when: 'CONFIG_SYSTEM_ONLY', if_true: qapi_files[i])
5242523b
MAL
145 i = i + 1
146endforeach