scons: Convert ProtoBuf to use a scons Builder and Scanner.
authorGabe Black <gabeblack@google.com>
Sun, 8 Nov 2020 15:17:04 +0000 (07:17 -0800)
committerGabe Black <gabe.black@gmail.com>
Thu, 12 Nov 2020 22:08:21 +0000 (22:08 +0000)
commit6bbdfa370c150b25a711e7dcf17bab8bf7ceba25
tree4f5e0a08e2622047c31413534b9518ed7f8677c4
parent0957ab118c8716b5d5337b23368c0f30c953f0bf
scons: Convert ProtoBuf to use a scons Builder and Scanner.

There are several benefits to using a Builder. First, the action we're
executing is shared between all uses of the Builder. The number of
times this particular builder is called is small, but it should still
be a little more efficient.

Second, we can use SCons's emitter mechanism to generate the .pb.cc and
.pb.h target files in a little more general way.

Also, this change adds a Scanner for .proto files which will scan them
for imports and let SCons manage those implicit dependencies properly.
The scanner is a bit simplistic as described in a comment in the
source, but should work pretty well in practice with reasonably
formatted files, and in particular some files I'm working with that
include imports.

Change-Id: Iaf2498e61133d6f713d6ccaf199422b882c5894f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/37276
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/SConscript