[roll] Roll third_party/pigweed pw_protobuf: Put codegen in a ::pwpb suffix namespace

The namespace suffix is applied at the package level, as specified in
the originating .proto file.

This change is mostly in order to avoid clashing with code generated by
the stock C++ representation outputted by protoc. This is useful, for
example, for projects that would like to use the stock C++ proto library
for additional tests, but which need to use pw_protobuf due to needs of
embedded targets.

For now, this change is set up in a way so that it is, by default,
backwards compatible with existing code. A flag has been added to the
plugin to opt out of legacy behaviour, but has not been implemented in
any rules that invoke the Pigweed proto compiler plugin.

Because of limitations with the current proto plugin implementation,
some external identifiers (references to things in other .proto files,
typically) are not parsed with a package annotation, and so we are
unable to codegen the ::pwpb suffix in the correct place. For now, I've
introduced an auxiliary namespace (discussed with hepler@google.com,
seems like the best fast workaround).

In the long term, potentially we can coax the plugin to traverse the
build graph better. (Package or namespace overrides are supported for
Java / Obj-C / C#, so presumably some mechanism is available.)

b/250945489

Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/117934
Original-Revision: f61993aad0077ef623307b8955c2c3f613420081
GitOrigin-RevId: 27ed1dd3cc080d9cab52b3303fcf5eb7c4d1cde9
Change-Id: I8585ebae691c4810c4fc99d0042d6cd2879d97ca
1 file changed
tree: aa5c008b2cef143fc4472ae36932d5d21310e33e
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. minimal
  9. prebuilts
  10. README.md
  11. stem
  12. test_durations
  13. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.