mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00
Include less of the generated modular QAPI headers
In my "build everything" tree, a change to the types in qapi-schema.json triggers a recompile of about 4800 out of 5100 objects. The previous commit split up qmp-commands.h, qmp-event.h, qmp-visit.h, qapi-types.h. Each of these headers still includes all its shards. Reduce compile time by including just the shards we actually need. To illustrate the benefits: adding a type to qapi/migration.json now recompiles some 2300 instead of 4800 objects. The next commit will improve it further. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20180211093607.27351-24-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> [eblake: rebase to master] Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
252dc3105f
commit
9af2398977
115 changed files with 135 additions and 109 deletions
|
@ -241,6 +241,9 @@ class QAPISchemaGenCommandVisitor(QAPISchemaModularCVisitor):
|
|||
|
||||
def _begin_module(self, name):
|
||||
self._visited_ret_types[self._genc] = set()
|
||||
commands = self._module_basename('qapi-commands', name)
|
||||
types = self._module_basename('qapi-types', name)
|
||||
visit = self._module_basename('qapi-visit', name)
|
||||
self._genc.add(mcgen('''
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu-common.h"
|
||||
|
@ -251,18 +254,17 @@ class QAPISchemaGenCommandVisitor(QAPISchemaModularCVisitor):
|
|||
#include "qapi/qobject-input-visitor.h"
|
||||
#include "qapi/dealloc-visitor.h"
|
||||
#include "qapi/error.h"
|
||||
#include "%(prefix)sqapi-types.h"
|
||||
#include "%(prefix)sqapi-visit.h"
|
||||
#include "%(prefix)sqmp-commands.h"
|
||||
#include "%(visit)s.h"
|
||||
#include "%(commands)s.h"
|
||||
|
||||
''',
|
||||
prefix=self._prefix))
|
||||
commands=commands, visit=visit))
|
||||
self._genh.add(mcgen('''
|
||||
#include "%(prefix)sqapi-types.h"
|
||||
#include "%(types)s.h"
|
||||
#include "qapi/qmp/dispatch.h"
|
||||
|
||||
''',
|
||||
prefix=self._prefix))
|
||||
types=types))
|
||||
|
||||
def visit_end(self):
|
||||
(genc, genh) = self._module[self._main_module]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue