| .. _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. |