blob: a29e318f8f3b89ee19e81f5e6d0e0d7b064fbfe6 [file] [log] [blame]
.. _docs-get-started:
===========
Get Started
===========
.. _docs-first-time-setup:
--------------------------------------------------
Configure your workstation for Pigweed development
--------------------------------------------------
Pigweed does its best to bundle all its dependencies into an isolated
environment using :ref:`module-pw_env_setup`. While this doesn't eliminate
all prerequisites, it greatly accelerates new developer onboarding.
The first-time setup guides below are required for any Pigweed-based project,
but only need to be done once per machine.
.. grid:: 1
.. grid-item-card:: First-time setup
:link: docs-first-time-setup-guide
:link-type: ref
:class-item: sales-pitch-cta-primary
Prerequisites, first-time setup, and support notes for Linux, macOS, and
Windows.
------------------------------
Create a Pigweed-based project
------------------------------
.. grid:: 1
.. grid-item-card:: :octicon:`rocket` Bazel
:link: docs-get-started-bazel
:link-type: ref
:class-item: sales-pitch-cta-primary
Fork our minimal, Bazel-based starter code. Bazel is the recommended
build system for new projects using Pigweed.
.. grid:: 1
.. grid-item-card:: :octicon:`rocket` Zephyr
:link: docs-quickstart-zephyr
:link-type: ref
:class-item: sales-pitch-cta-secondary
Learn how to set up a C++-based Zephyr project that is ready to use
Pigweed and then build the app with Zephyr's ``native_sim`` board.
.. grid:: 1
.. grid-item-card:: :octicon:`code` Examples
:link: https://pigweed.dev/examples/index.html
:link-type: url
:class-item: sales-pitch-cta-secondary
Check out the examples repo, a repository that outlines the recommended
way to use Pigweed in a broader GN-based project. Note that Bazel is the
recommended build system for new projects using Pigweed, whereas the
examples repo uses GN.
.. grid:: 2
.. grid-item-card:: :octicon:`code` Kudzu
:link: docs-kudzu
:link-type: ref
:class-item: sales-pitch-cta-secondary
Study the code of Kudzu, a just-for-fun Maker Faire 2023 project that
demonstrates complex Pigweed usage. This project also uses GN.
.. grid-item-card:: :octicon:`list-ordered` Upstream Pigweed
:link: docs-get-started-upstream
:link-type: ref
:class-item: sales-pitch-cta-secondary
Get set up to contribute to upstream Pigweed.
.. toctree::
:maxdepth: 1
:hidden:
First-time setup <first_time_setup>
Bazel quickstart <bazel>
Bazel integration <bazel_integration>
Zephyr quickstart <zephyr>
Upstream Pigweed <upstream>
------------------------------------------
Use Pigweed modules in an existing project
------------------------------------------
Pigweed is modular: you can use as much or as little of it as you need.
.. grid:: 1
.. grid-item-card:: :octicon:`rocket` Bazel
:link: docs-bazel-integration
:link-type: ref
:class-item: sales-pitch-cta-primary
Instructions for how to use a Pigweed module in an existing Bazel
project.