Add pw_bloat module

This change adds a size reporting module named pw_bloat. The module
uses Bloaty McBloatface to generate size report cards for binaries. It
provides a GN template which defines an action to perform a size diff
on a group of binary targets.

Example output:

                       simple_bloat
                       ────────────
┌────────────────┬──────────────┬────────┬───────┬───────┐
│      Label     │    Segment   │ Before │ Delta │ After │
├════════════════┼══════════════┼════════┼═══════┼═══════┤
│     Add a loop │ EXAMPLE CODE │    429 │   +32 │   461 │
│                │ EXAMPLE  RAM │    576 │    +8 │   584 │
├────────────────┼──────────────┼────────┼───────┼───────┤
│ Add a function │ EXAMPLE CODE │    429 │   +16 │   445 │
│                │ EXAMPLE  RAM │    576 │    +8 │   584 │
└────────────────┴──────────────┴────────┴───────┴───────┘

Change-Id: I14b3d383ec450bc6d017bf5d0111e266b0a3c368
18 files changed
tree: 739d6a5bab7042958b67301742322126097ea5ed
  1. pw_bloat/
  2. pw_build/
  3. pw_docgen/
  4. pw_preprocessor/
  5. pw_span/
  6. pw_status/
  7. pw_string/
  8. pw_toolchain/
  9. pw_unit_test/
  10. targets/
  11. .clang-format
  12. .gitignore
  13. .gn
  14. AUTHORS
  15. BUILD
  16. BUILD.gn
  17. BUILDCONFIG.gn
  18. CONTRIBUTING.md
  19. LICENSE
  20. modules.gni
  21. pw_vars_default.gni
  22. README.md
  23. WORKSPACE
README.md

Pigweed embedded oriented software libraries

Pigweed is a collection of embedded-focused libraries, which we call "modules". These modules are designed for small-footprint MMU-less microcontrollers like the ST Micro STM32L452 or the Nordic NRF82832. The modules are designed to facilitate easy integration into existing codebases.

Pigweed is in the early stages of development.