qapi: Touch generated files only when they change
commit907b846653fb3757bf2ab98d6d66f92df34d875f
authorMarkus Armbruster <armbru@redhat.com>
Sun, 11 Feb 2018 09:35:48 +0000 (11 10:35 +0100)
committerEric Blake <eblake@redhat.com>
Fri, 2 Mar 2018 19:14:09 +0000 (2 13:14 -0600)
treed4ea513585b3435789c3f5bccb6ff1b6cc8c0cf3
parent3b446a1817289d89844ad77c719bdc44bbcd1198
qapi: Touch generated files only when they change

A massive number of objects depends on QAPI-generated headers.  In my
"build everything" tree, it's roughly 4800 out of 5100.  This is
particularly annoying when only some of the generated files change,
say for a doc fix.

Improve qapi-gen.py to touch its output files only if they actually
change.  Rebuild time for a QAPI doc fix drops from many minutes to a
few seconds.  Rebuilds get faster for certain code changes, too.  For
instance, adding a simple QMP event now recompiles less than 200
instead of 4800 objects.  But adding a QAPI type is as bad as ever;
we've clearly got more work to do.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20180211093607.27351-11-armbru@redhat.com>
Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>
[eblake: fix octal constant for python3]
Signed-off-by: Eric Blake <eblake@redhat.com>
scripts/qapi/common.py