| .. _module-pw_build: |
| |
| -------- |
| pw_build |
| -------- |
| Pigweed's modules aim to be easily integratable into both new and existing |
| embedded projects. To that goal, the ``pw_build`` module provides support for |
| multiple build systems. Our personal favorite is `GN`_/`Ninja`_, which is used |
| by upstream developers for its speed and flexibility. `CMake`_ and `Bazel`_ |
| build files are also provided by all modules, allowing Pigweed to be added to a |
| project with minimal effort. |
| |
| .. _GN: https://gn.googlesource.com/gn/ |
| .. _Ninja: https://ninja-build.org/ |
| .. _CMake: https://cmake.org/ |
| .. _Bazel: https://bazel.build/ |
| |
| Beyond just compiling code, Pigweed’s GN build system can also: |
| |
| * Generate HTML documentation, via our Sphinx integration (with ``pw_docgen``) |
| * Display memory usage report cards (with ``pw_bloat``) |
| * Incrementally run unit tests after code changes (with ``pw_target_runner``) |
| * And more! |
| |
| These are only supported in the GN build, but work is being done to bring |
| these to Pigweed's Bazel build integration. |
| |
| .. toctree:: |
| :hidden: |
| :maxdepth: 1 |
| |
| gn |
| cmake |
| bazel |
| project_builder |