scons: Fix how directories are handled for protobuf files.
authorGabe Black <gabeblack@google.com>
Sat, 7 Nov 2020 14:26:03 +0000 (06:26 -0800)
committerGabe Black <gabe.black@gmail.com>
Thu, 12 Nov 2020 22:07:42 +0000 (22:07 +0000)
commit598f15cf24532dce5b3bf1e0b6052aa0ff114778
tree43246f478aa98128a8c051153c436d58506b2e85
parent760e18e35bef25d24d4543f71b9e3c4f5861d7c4
scons: Fix how directories are handled for protobuf files.

There were two issues with how paths were handled for these files.

1. The code in the ProtoBuf class would drop the subdirectory part of
the path name when generating the name of the .cc and .h files the
protoc compiler would output. Since protoc wouldn't generate files
where scons expected, it would fail when it tried to build the .cc.

2. protoc will use the --proto_path and --cpp_out settings to figure
out what path to use for generated files. It will remove the
--proto_path prefix it found the .proto file with from the files path,
and then add the rest to the --cpp_out prefix.

The input files should come from the build directory using symlinks
set up by scons, and the output files should end up alongside them.
That means the --proto_path setting should be the build directory, and
so should --cpp_out. That's fortunately simpler than what was there
before, since it doesn't depend on what the source or targets are.

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