1.. _docs-get-started: 2 3=========== 4Get Started 5=========== 6.. _docs-first-time-setup: 7 8-------------------------------------------------- 9Configure your workstation for Pigweed development 10-------------------------------------------------- 11Pigweed does its best to bundle all its dependencies into an isolated 12environment using :ref:`module-pw_env_setup`. While this doesn't eliminate 13all prerequisites, it greatly accelerates new developer onboarding. 14 15The first-time setup guides below are required for any Pigweed-based project, 16but only need to be done once per machine. 17 18.. grid:: 1 19 20 .. grid-item-card:: First-time setup 21 :link: docs-first-time-setup-guide 22 :link-type: ref 23 :class-item: sales-pitch-cta-primary 24 25 Prerequisites, first-time setup, and support notes for Linux, macOS, and 26 Windows. 27 28------------------------------ 29Create a Pigweed-based project 30------------------------------ 31.. grid:: 1 32 33 .. grid-item-card:: :octicon:`rocket` Bazel 34 :link: docs-get-started-bazel 35 :link-type: ref 36 :class-item: sales-pitch-cta-primary 37 38 Fork our minimal, Bazel-based starter code. Bazel is the recommended 39 build system for new projects using Pigweed. 40 41.. grid:: 1 42 43 .. grid-item-card:: :octicon:`rocket` Zephyr 44 :link: docs-quickstart-zephyr 45 :link-type: ref 46 :class-item: sales-pitch-cta-secondary 47 48 Learn how to set up a C++-based Zephyr project that is ready to use 49 Pigweed and then build the app with Zephyr's ``native_sim`` board. 50 51.. grid:: 1 52 53 .. grid-item-card:: :octicon:`code` Examples 54 :link: https://pigweed.dev/examples/index.html 55 :link-type: url 56 :class-item: sales-pitch-cta-secondary 57 58 Check out the examples repo, a repository that outlines the recommended 59 way to use Pigweed in a broader GN-based project. Note that Bazel is the 60 recommended build system for new projects using Pigweed, whereas the 61 examples repo uses GN. 62 63 64.. grid:: 2 65 66 .. grid-item-card:: :octicon:`code` Kudzu 67 :link: docs-kudzu 68 :link-type: ref 69 :class-item: sales-pitch-cta-secondary 70 71 Study the code of Kudzu, a just-for-fun Maker Faire 2023 project that 72 demonstrates complex Pigweed usage. This project also uses GN. 73 74 .. grid-item-card:: :octicon:`list-ordered` Upstream Pigweed 75 :link: docs-get-started-upstream 76 :link-type: ref 77 :class-item: sales-pitch-cta-secondary 78 79 Get set up to contribute to upstream Pigweed. 80 81.. toctree:: 82 :maxdepth: 1 83 :hidden: 84 85 First-time setup <first_time_setup> 86 Bazel quickstart <bazel> 87 Bazel integration <bazel_integration> 88 Zephyr quickstart <zephyr> 89 Upstream Pigweed <upstream> 90 91------------------------------------------ 92Use Pigweed modules in an existing project 93------------------------------------------ 94Pigweed is modular: you can use as much or as little of it as you need. 95 96.. grid:: 1 97 98 .. grid-item-card:: :octicon:`rocket` Bazel 99 :link: docs-bazel-integration 100 :link-type: ref 101 :class-item: sales-pitch-cta-primary 102 103 Instructions for how to use a Pigweed module in an existing Bazel 104 project. 105