[roll third_party/pigweed] pw_build: Update pw_error template

- Display full target names, including the toolchain, for build errors.
- Print the dependency path that caused the error using gn path.
- Add message_lines argument to simplify multi-line messages.
- Replace null_backend.py with pw_error.
- Ensure that pw_error works without the Pigweed Python packages
  installed.

Example error if pw_log_BACKEND is unset:

9:28:27 ERR
9:28:27 ERR Build error for //pw_log:pw_log.NO_BACKEND_SET(//targets/host:host_clang_debug):
9:28:27 ERR
9:28:27 ERR   Attempted to build the //pw_log:pw_log facade with no backend.
9:28:27 ERR
9:28:27 ERR   If you are using this facade, ensure you have configured a backend
9:28:27 ERR   properly. The build arg for the facade must be set to a valid
9:28:27 ERR   backend in the toolchain. For example, you may need to add a line
9:28:27 ERR   like the following to the toolchain's .gni file:
9:28:27 ERR
9:28:27 ERR     pw_log_BACKEND = "//path/to/the:backend"
9:28:27 ERR
9:28:27 ERR   If you are NOT using this facade, this error may have been triggered
9:28:27 ERR   by trying to build all targets.
9:28:27 ERR
9:28:28 ERR Dependency path to this target:
9:28:28 ERR
9:28:28 ERR   gn path out //:default "//pw_log:pw_log.NO_BACKEND_SET(//targets/host:host_clang_debug)"
//:default --[private]-->
//:host --[private]-->
//:pigweed_default(//targets/host:host_clang_debug) --[private]-->
//pw_trace:trace_example_basic(//targets/host:host_clang_debug) --[private]-->
//pw_log:pw_log(//targets/host:host_clang_debug) --[public]-->
//pw_log:pw_log.NO_BACKEND_SET(//targets/host:host_clang_debug)

Showing one of 75 "interesting" non-data paths. 0 of them are public.
Use --all to print all paths.

Original-Fixed: 336
Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/36240

third_party/pigweed Rolled-Commits: db455e64bb4a11a..0c84ab6698c8b40
Roller-URL: https://ci.chromium.org/b/8853122821640655536
Cq-Cl-Tag: roller-builder:pigweed-experimental-roller
Cq-Cl-Tag: roller-bid:8853122821640655536
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: Ia5b35b7cebd0929837a9c77734b9bdd91e606b04
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/36860
Reviewed-by: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
Commit-Queue: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
1 file changed
tree: a556dfd46ae02e52735e8ccc810c34b3b938e4c7
  1. applications/
  2. build_overrides/
  3. pw_board_led/
  4. pw_board_led_arduino/
  5. pw_board_led_host/
  6. pw_board_led_stm32f429i_disc1/
  7. pw_console/
  8. pw_spin_delay/
  9. pw_spin_delay_arduino/
  10. pw_spin_delay_host/
  11. pw_spin_delay_stm32f429i_disc1/
  12. targets/
  13. third_party/
  14. tools/
  15. .gitattributes
  16. .gitignore
  17. .gitmodules
  18. .gn
  19. activate.bat
  20. banner.txt
  21. bootstrap.bat
  22. bootstrap.sh
  23. BUILD.gn
  24. BUILDCONFIG.gn
  25. navbar.md
  26. PW_PLUGINS
  27. README.md
README.md

Pigweed Experimental

This repository contains experimental pigweed modules.

Repository setup

Clone this repo with --recursive to get all required submodules.

git clone --recursive https://pigweed.googlesource.com/pigweed/experimental

This will pull the Pigweed source repository into third_party/pigweed. If you already cloned but forgot to --recursive run git submodule update --init to pull all submodules.