Build systems#
Bazel, GN, and CMake integrations and rules
Pigweed has full support for Bazel and partial support for GN and CMake. See Build system integrations for more information.
General#
A high-level explanation of Pigweed’s approach to build systems.
Bazel#
Recommendations on how to install Bazel.
Fork our minimal, Bazel-based starter project to create a new Pigweed project from scratch. The project includes a basic blinky LED program that runs on Raspberry Pi Picos and can be simulated on your development host.
Learn how to use Pigweed in an existing Bazel project: add Pigweed as a dependency, start using Pigweed modules, and set up static and runtime analysis.
A deep-dive into the Bazel patterns Pigweed uses to express that a build target is compatible with a platform
GN / Ninja#
Details on the custom GN-based build system that Pigweed uses to manage its Python code.
CMake#
Learn how to use Pigweed in an existing CMake project: add Pigweed as a dependency, configure backends, and use modules.
Modules#
The following table lists all modules related to Build systems.
Name |
Status |
Description |
Languages |
|---|---|---|---|
stable |
Integrations for Bazel, GN, and CMake |
Bazel, CMake, GN, Rust |
|
stable |
Generate, embed, and parse build-related information |
Bazel, CMake, GN |
|
unstable |
Source code generation utilities |
Python |
|
experimental |