761a1a488e
We don't generate trace events for tests/ and qga/ because that it is not simple and not necessary. We have corresponding comments in both tests/meson.build and qga/meson.build. Still to not miss possible future qapi code generation call, and not to forget to enable trace events generation, let's enable it by default. So, turn option --gen-trace into opposite --no-trace-events and use new option only in tests/ and qga/ where we already have good comments why we don't generate trace events code. Note that this commit enables trace-events generation for qapi-gen.py call from tests/qapi-schema/meson.build and storage-daemon/meson.build. Still, both are kind of noop: tests/qapi-schema/ doesn't seem to generate any QMP command code and no .trace-events files anyway, storage-daemon/ uses common QMP command implementations and just generate empty .trace-events Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-Id: <20220126161130.3240892-8-vsementsov@virtuozzo.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
158 lines
3.4 KiB
Meson
158 lines
3.4 KiB
Meson
util_ss.add(files(
|
|
'opts-visitor.c',
|
|
'qapi-clone-visitor.c',
|
|
'qapi-dealloc-visitor.c',
|
|
'qapi-forward-visitor.c',
|
|
'qapi-util.c',
|
|
'qapi-visit-core.c',
|
|
'qobject-input-visitor.c',
|
|
'qobject-output-visitor.c',
|
|
'string-input-visitor.c',
|
|
'string-output-visitor.c',
|
|
))
|
|
if have_system
|
|
util_ss.add(files('qapi-type-helpers.c'))
|
|
endif
|
|
if have_system or have_tools
|
|
util_ss.add(files(
|
|
'qmp-dispatch.c',
|
|
'qmp-event.c',
|
|
'qmp-registry.c',
|
|
))
|
|
endif
|
|
|
|
qapi_all_modules = [
|
|
'authz',
|
|
'block',
|
|
'block-core',
|
|
'block-export',
|
|
'char',
|
|
'common',
|
|
'compat',
|
|
'control',
|
|
'crypto',
|
|
'dump',
|
|
'error',
|
|
'introspect',
|
|
'job',
|
|
'machine',
|
|
'machine-target',
|
|
'migration',
|
|
'misc',
|
|
'misc-target',
|
|
'net',
|
|
'pragma',
|
|
'qom',
|
|
'replay',
|
|
'run-state',
|
|
'sockets',
|
|
'trace',
|
|
'transaction',
|
|
'yank',
|
|
]
|
|
if have_system
|
|
qapi_all_modules += [
|
|
'acpi',
|
|
'audio',
|
|
'qdev',
|
|
'pci',
|
|
'rdma',
|
|
'rocker',
|
|
'tpm',
|
|
]
|
|
endif
|
|
if have_system or have_tools
|
|
qapi_all_modules += [
|
|
'ui',
|
|
]
|
|
endif
|
|
|
|
qapi_storage_daemon_modules = [
|
|
'block-core',
|
|
'block-export',
|
|
'char',
|
|
'common',
|
|
'control',
|
|
'crypto',
|
|
'introspect',
|
|
'job',
|
|
'qom',
|
|
'sockets',
|
|
'pragma',
|
|
'transaction',
|
|
]
|
|
|
|
qapi_nonmodule_outputs = [
|
|
'qapi-introspect.c', 'qapi-introspect.h',
|
|
'qapi-types.c', 'qapi-types.h',
|
|
'qapi-visit.h', 'qapi-visit.c',
|
|
'qapi-commands.h', 'qapi-commands.c',
|
|
'qapi-init-commands.h', 'qapi-init-commands.c',
|
|
'qapi-events.h', 'qapi-events.c',
|
|
'qapi-emit-events.c', 'qapi-emit-events.h',
|
|
]
|
|
|
|
# First build all sources
|
|
qapi_util_outputs = [
|
|
'qapi-builtin-types.c', 'qapi-builtin-visit.c',
|
|
'qapi-builtin-types.h', 'qapi-builtin-visit.h',
|
|
]
|
|
|
|
qapi_inputs = []
|
|
qapi_specific_outputs = []
|
|
foreach module : qapi_all_modules
|
|
qapi_inputs += [ files(module + '.json') ]
|
|
qapi_module_outputs = [
|
|
'qapi-types-@0@.c'.format(module),
|
|
'qapi-types-@0@.h'.format(module),
|
|
'qapi-visit-@0@.c'.format(module),
|
|
'qapi-visit-@0@.h'.format(module),
|
|
]
|
|
if have_system or have_tools
|
|
qapi_module_outputs += [
|
|
'qapi-events-@0@.c'.format(module),
|
|
'qapi-events-@0@.h'.format(module),
|
|
'qapi-commands-@0@.c'.format(module),
|
|
'qapi-commands-@0@.h'.format(module),
|
|
'qapi-commands-@0@.trace-events'.format(module),
|
|
]
|
|
endif
|
|
if module.endswith('-target')
|
|
qapi_specific_outputs += qapi_module_outputs
|
|
else
|
|
qapi_util_outputs += qapi_module_outputs
|
|
endif
|
|
endforeach
|
|
|
|
qapi_files = custom_target('shared QAPI source files',
|
|
output: qapi_util_outputs + qapi_specific_outputs + qapi_nonmodule_outputs,
|
|
input: [ files('qapi-schema.json') ],
|
|
command: [ qapi_gen, '-o', 'qapi', '-b', '@INPUT0@' ],
|
|
depend_files: [ qapi_inputs, qapi_gen_depends ])
|
|
|
|
# Now go through all the outputs and add them to the right sourceset.
|
|
# These loops must be synchronized with the output of the above custom target.
|
|
|
|
i = 0
|
|
foreach output : qapi_util_outputs
|
|
if output.endswith('.h')
|
|
genh += qapi_files[i]
|
|
endif
|
|
if output.endswith('.trace-events')
|
|
qapi_trace_events += qapi_files[i]
|
|
endif
|
|
util_ss.add(qapi_files[i])
|
|
i = i + 1
|
|
endforeach
|
|
|
|
foreach output : qapi_specific_outputs + qapi_nonmodule_outputs
|
|
if output.endswith('.h')
|
|
genh += qapi_files[i]
|
|
endif
|
|
if output.endswith('.trace-events')
|
|
qapi_trace_events += qapi_files[i]
|
|
endif
|
|
specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: qapi_files[i])
|
|
i = i + 1
|
|
endforeach
|