123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- 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 or have_ga
- 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',
- 'cxl',
- 'dump',
- 'error',
- 'introspect',
- 'job',
- 'machine',
- 'machine-target',
- 'migration',
- 'misc',
- 'misc-target',
- 'net',
- 'pragma',
- 'qom',
- 'replay',
- 'run-state',
- 'sockets',
- 'stats',
- 'trace',
- 'transaction',
- 'virtio',
- 'yank',
- ]
- if have_system
- qapi_all_modules += [
- 'acpi',
- 'audio',
- 'cryptodev',
- 'qdev',
- 'pci',
- 'rdma',
- 'rocker',
- 'tpm',
- ]
- endif
- if have_system or have_tools
- qapi_all_modules += [
- 'ui',
- ]
- endif
- 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
|