From 9af2398977a78d37bf184d6ff6bd04c72bfbf006 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 11 Feb 2018 10:36:01 +0100 Subject: Include less of the generated modular QAPI headers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Message-Id: <20180211093607.27351-24-armbru@redhat.com> Reviewed-by: Eric Blake Reviewed-by: Marc-André Lureau [eblake: rebase to master] Signed-off-by: Eric Blake --- scripts/qapi/commands.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'scripts/qapi/commands.py') diff --git a/scripts/qapi/commands.py b/scripts/qapi/commands.py index a43bccb190..953449171b 100644 --- a/scripts/qapi/commands.py +++ b/scripts/qapi/commands.py @@ -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] -- cgit 1.4.1