xref: /aosp_15_r20/external/pigweed/docs/get_started/index.rst (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1.. _docs-get-started:
2
3===========
4Quickstarts
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:: 2
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   .. grid-item-card:: Install Bazel
29      :link: docs-install-bazel
30      :link-type: ref
31      :class-item: sales-pitch-cta-secondary
32
33      Recommendations on how to install Bazel.
34
35---------------
36Tour of Pigweed
37---------------
38Want a guided, hands-on tour of Pigweed's core features? Try our
39brand new :ref:`Tour of Pigweed <showcase-sense>`!
40
41.. grid:: 1
42
43   .. grid-item-card:: :octicon:`rocket` Tour of Pigweed
44      :link: showcase-sense
45      :link-type: ref
46      :class-item: sales-pitch-cta-primary
47
48      Explore key Pigweed features, such as hermetic building, full C++
49      code intelligence in VS Code, communicating with devices over RPC,
50      host-side and on-device unit tests, and lots more.
51
52------------------------------
53Create a Pigweed-based project
54------------------------------
55.. grid:: 1
56
57   .. grid-item-card:: :octicon:`code-square` Bazel quickstart
58      :link: https://cs.opensource.google/pigweed/quickstart/bazel
59      :link-type: url
60      :class-item: sales-pitch-cta-secondary
61
62      Fork our minimal, Bazel-based starter project to create a new
63      Pigweed project from scratch. The project includes a basic
64      blinky LED program that runs on Raspberry Pi Picos and can
65      be simulated on your development host.
66
67.. grid:: 2
68
69   .. grid-item-card:: :octicon:`rocket` Zephyr
70      :link: docs-quickstart-zephyr
71      :link-type: ref
72      :class-item: sales-pitch-cta-secondary
73
74      Learn how to set up a C++-based Zephyr project that is ready to use
75      Pigweed and then build the app with Zephyr's ``native_sim`` board.
76
77   .. grid-item-card:: :octicon:`code` Examples
78      :link: https://pigweed.dev/examples/index.html
79      :link-type: url
80      :class-item: sales-pitch-cta-secondary
81
82      Check out the examples repo, a repository that outlines the recommended
83      way to use Pigweed in a broader GN-based project. Note that Bazel is the
84      recommended build system for new projects using Pigweed, whereas the
85      examples repo uses GN.
86
87
88.. grid:: 2
89
90   .. grid-item-card:: :octicon:`code` Kudzu
91      :link: docs-kudzu
92      :link-type: ref
93      :class-item: sales-pitch-cta-secondary
94
95      Study the code of Kudzu, a just-for-fun Maker Faire 2023 project that
96      demonstrates complex Pigweed usage. This project also uses GN.
97
98   .. grid-item-card:: :octicon:`list-ordered` Upstream Pigweed
99      :link: docs-get-started-upstream
100      :link-type: ref
101      :class-item: sales-pitch-cta-secondary
102
103      Get set up to contribute to upstream Pigweed.
104
105------------------------------------------
106Use Pigweed modules in an existing project
107------------------------------------------
108Pigweed is modular: you can use as much or as little of it as you need.
109
110.. grid:: 2
111
112   .. grid-item-card:: :octicon:`rocket` Bazel
113      :link: docs-bazel-integration
114      :link-type: ref
115      :class-item: sales-pitch-cta-primary
116
117      Instructions for how to use a Pigweed module in an existing Bazel
118      project.
119
120   .. grid-item-card:: :octicon:`list-ordered` GitHub Actions
121      :link: docs-github-actions
122      :link-type: ref
123      :class-item: sales-pitch-cta-secondary
124
125      How to set up GitHub Actions to build and test your Bazel-based
126      Pigweed project.
127
128.. toctree::
129   :maxdepth: 1
130   :hidden:
131
132   self
133   First-time setup <first_time_setup>
134   Install Bazel <install_bazel>
135   Bazel quickstart <bazel>
136   Bazel integration <bazel_integration>
137   GitHub Actions <github_actions>
138   Zephyr quickstart <zephyr>
139   Upstream Pigweed <upstream>
140