Build systems#

Pigweed has full support for Bazel and partial support for GN and CMake. See Build system integrations for more information.

General#

Overview

A high-level explanation of Pigweed’s approach to build systems.

Bazel#

Install Bazel

Recommendations on how to install Bazel.

Bazel quickstart

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.

Bazel integration

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.

Bazel build compatibility patterns

A deep-dive into the Bazel patterns Pigweed uses to express that a build target is compatible with a platform

GN / Ninja#

Pigweed’s GN Python build

Details on the custom GN-based build system that Pigweed uses to manage its Python code.

CMake#

CMake integration

Learn how to use Pigweed in an existing CMake project: add Pigweed as a dependency, configure backends, and use modules.