LibraryActive

Pigweed

Pigweed is an open-source collection of embedded development libraries and build system integrations supporting Bazel, GN, and CMake.

Open source page

Field note

What it does

Pigweed is an open-source collection of embedded development libraries and build system integrations. It provides full support for Bazel and partial support for GN and CMake, with documentation for installation, quickstarts, and integration guides.

Capabilities

Available capabilities

Tags

Tags

Ways to use it

Ways to use it

other

Not filed / https://pigweed.dev/build/#bazel

Product features

Product features

Full Bazel support

Pigweed has full support for Bazel.

Bazel integration guide

Learn how to use Pigweed in an existing Bazel project.

Bazel quickstart

A minimal Bazel-based starter project for creating new Pigweed projects.

Bazel Support

Supports the Bazel build system for hermetic builds and dependency management.

Build systems support

Supports Bazel, GN, and CMake as primary build systems, with Soong optional.

C/C++ API references

API references for over 50 Pigweed modules.

CMake integration guide

Learn how to use Pigweed in an existing CMake project.

Partial CMake support

Pigweed has partial support for CMake.

CMake Support

Contributing guide

A guide for contributing to the Pigweed project, covering setup, code review, and merging.

Extensible target system

Pigweed's GN build includes an extensible target system allowing configuration for multiple platforms.

Facade backends

Pigweed defines facades for core system features with selectable backends.

Facades and Backends

Key architectural concept for portability and customization.

Gerrit code review

Uses Gerrit for code review, with a read-only GitHub mirror.

Partial GN support

Pigweed has partial support for GN.

GN Python build

Details on Pigweed's custom GN-based build system for managing Python code.

GN support

Extensive support for GN, though expected to decline.

Hierarchical target structure

Targets can be composed of other toolchains, enabling hierarchical configurations.

Embedded development libraries

Optimized for resource-constrained hardware, battle-tested in millions of devices.

Toolchain target variables

Core toolchain variables like ar, cc, cxx and defaults scope for build arguments.