xref: /aosp_15_r20/external/pigweed/docs/get_started/index.rst (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker.. _docs-get-started:
2*61c4878aSAndroid Build Coastguard Worker
3*61c4878aSAndroid Build Coastguard Worker===========
4*61c4878aSAndroid Build Coastguard WorkerQuickstarts
5*61c4878aSAndroid Build Coastguard Worker===========
6*61c4878aSAndroid Build Coastguard Worker.. _docs-first-time-setup:
7*61c4878aSAndroid Build Coastguard Worker
8*61c4878aSAndroid Build Coastguard Worker--------------------------------------------------
9*61c4878aSAndroid Build Coastguard WorkerConfigure your workstation for Pigweed development
10*61c4878aSAndroid Build Coastguard Worker--------------------------------------------------
11*61c4878aSAndroid Build Coastguard WorkerPigweed does its best to bundle all its dependencies into an isolated
12*61c4878aSAndroid Build Coastguard Workerenvironment using :ref:`module-pw_env_setup`. While this doesn't eliminate
13*61c4878aSAndroid Build Coastguard Workerall prerequisites, it greatly accelerates new developer onboarding.
14*61c4878aSAndroid Build Coastguard Worker
15*61c4878aSAndroid Build Coastguard WorkerThe first-time setup guides below are required for any Pigweed-based project,
16*61c4878aSAndroid Build Coastguard Workerbut only need to be done once per machine.
17*61c4878aSAndroid Build Coastguard Worker
18*61c4878aSAndroid Build Coastguard Worker.. grid:: 2
19*61c4878aSAndroid Build Coastguard Worker
20*61c4878aSAndroid Build Coastguard Worker   .. grid-item-card:: First-time setup
21*61c4878aSAndroid Build Coastguard Worker      :link: docs-first-time-setup-guide
22*61c4878aSAndroid Build Coastguard Worker      :link-type: ref
23*61c4878aSAndroid Build Coastguard Worker      :class-item: sales-pitch-cta-primary
24*61c4878aSAndroid Build Coastguard Worker
25*61c4878aSAndroid Build Coastguard Worker      Prerequisites, first-time setup, and support notes for Linux, macOS, and
26*61c4878aSAndroid Build Coastguard Worker      Windows.
27*61c4878aSAndroid Build Coastguard Worker
28*61c4878aSAndroid Build Coastguard Worker   .. grid-item-card:: Install Bazel
29*61c4878aSAndroid Build Coastguard Worker      :link: docs-install-bazel
30*61c4878aSAndroid Build Coastguard Worker      :link-type: ref
31*61c4878aSAndroid Build Coastguard Worker      :class-item: sales-pitch-cta-secondary
32*61c4878aSAndroid Build Coastguard Worker
33*61c4878aSAndroid Build Coastguard Worker      Recommendations on how to install Bazel.
34*61c4878aSAndroid Build Coastguard Worker
35*61c4878aSAndroid Build Coastguard Worker---------------
36*61c4878aSAndroid Build Coastguard WorkerTour of Pigweed
37*61c4878aSAndroid Build Coastguard Worker---------------
38*61c4878aSAndroid Build Coastguard WorkerWant a guided, hands-on tour of Pigweed's core features? Try our
39*61c4878aSAndroid Build Coastguard Workerbrand new :ref:`Tour of Pigweed <showcase-sense>`!
40*61c4878aSAndroid Build Coastguard Worker
41*61c4878aSAndroid Build Coastguard Worker.. grid:: 1
42*61c4878aSAndroid Build Coastguard Worker
43*61c4878aSAndroid Build Coastguard Worker   .. grid-item-card:: :octicon:`rocket` Tour of Pigweed
44*61c4878aSAndroid Build Coastguard Worker      :link: showcase-sense
45*61c4878aSAndroid Build Coastguard Worker      :link-type: ref
46*61c4878aSAndroid Build Coastguard Worker      :class-item: sales-pitch-cta-primary
47*61c4878aSAndroid Build Coastguard Worker
48*61c4878aSAndroid Build Coastguard Worker      Explore key Pigweed features, such as hermetic building, full C++
49*61c4878aSAndroid Build Coastguard Worker      code intelligence in VS Code, communicating with devices over RPC,
50*61c4878aSAndroid Build Coastguard Worker      host-side and on-device unit tests, and lots more.
51*61c4878aSAndroid Build Coastguard Worker
52*61c4878aSAndroid Build Coastguard Worker------------------------------
53*61c4878aSAndroid Build Coastguard WorkerCreate a Pigweed-based project
54*61c4878aSAndroid Build Coastguard Worker------------------------------
55*61c4878aSAndroid Build Coastguard Worker.. grid:: 1
56*61c4878aSAndroid Build Coastguard Worker
57*61c4878aSAndroid Build Coastguard Worker   .. grid-item-card:: :octicon:`code-square` Bazel quickstart
58*61c4878aSAndroid Build Coastguard Worker      :link: https://cs.opensource.google/pigweed/quickstart/bazel
59*61c4878aSAndroid Build Coastguard Worker      :link-type: url
60*61c4878aSAndroid Build Coastguard Worker      :class-item: sales-pitch-cta-secondary
61*61c4878aSAndroid Build Coastguard Worker
62*61c4878aSAndroid Build Coastguard Worker      Fork our minimal, Bazel-based starter project to create a new
63*61c4878aSAndroid Build Coastguard Worker      Pigweed project from scratch. The project includes a basic
64*61c4878aSAndroid Build Coastguard Worker      blinky LED program that runs on Raspberry Pi Picos and can
65*61c4878aSAndroid Build Coastguard Worker      be simulated on your development host.
66*61c4878aSAndroid Build Coastguard Worker
67*61c4878aSAndroid Build Coastguard Worker.. grid:: 2
68*61c4878aSAndroid Build Coastguard Worker
69*61c4878aSAndroid Build Coastguard Worker   .. grid-item-card:: :octicon:`rocket` Zephyr
70*61c4878aSAndroid Build Coastguard Worker      :link: docs-quickstart-zephyr
71*61c4878aSAndroid Build Coastguard Worker      :link-type: ref
72*61c4878aSAndroid Build Coastguard Worker      :class-item: sales-pitch-cta-secondary
73*61c4878aSAndroid Build Coastguard Worker
74*61c4878aSAndroid Build Coastguard Worker      Learn how to set up a C++-based Zephyr project that is ready to use
75*61c4878aSAndroid Build Coastguard Worker      Pigweed and then build the app with Zephyr's ``native_sim`` board.
76*61c4878aSAndroid Build Coastguard Worker
77*61c4878aSAndroid Build Coastguard Worker   .. grid-item-card:: :octicon:`code` Examples
78*61c4878aSAndroid Build Coastguard Worker      :link: https://pigweed.dev/examples/index.html
79*61c4878aSAndroid Build Coastguard Worker      :link-type: url
80*61c4878aSAndroid Build Coastguard Worker      :class-item: sales-pitch-cta-secondary
81*61c4878aSAndroid Build Coastguard Worker
82*61c4878aSAndroid Build Coastguard Worker      Check out the examples repo, a repository that outlines the recommended
83*61c4878aSAndroid Build Coastguard Worker      way to use Pigweed in a broader GN-based project. Note that Bazel is the
84*61c4878aSAndroid Build Coastguard Worker      recommended build system for new projects using Pigweed, whereas the
85*61c4878aSAndroid Build Coastguard Worker      examples repo uses GN.
86*61c4878aSAndroid Build Coastguard Worker
87*61c4878aSAndroid Build Coastguard Worker
88*61c4878aSAndroid Build Coastguard Worker.. grid:: 2
89*61c4878aSAndroid Build Coastguard Worker
90*61c4878aSAndroid Build Coastguard Worker   .. grid-item-card:: :octicon:`code` Kudzu
91*61c4878aSAndroid Build Coastguard Worker      :link: docs-kudzu
92*61c4878aSAndroid Build Coastguard Worker      :link-type: ref
93*61c4878aSAndroid Build Coastguard Worker      :class-item: sales-pitch-cta-secondary
94*61c4878aSAndroid Build Coastguard Worker
95*61c4878aSAndroid Build Coastguard Worker      Study the code of Kudzu, a just-for-fun Maker Faire 2023 project that
96*61c4878aSAndroid Build Coastguard Worker      demonstrates complex Pigweed usage. This project also uses GN.
97*61c4878aSAndroid Build Coastguard Worker
98*61c4878aSAndroid Build Coastguard Worker   .. grid-item-card:: :octicon:`list-ordered` Upstream Pigweed
99*61c4878aSAndroid Build Coastguard Worker      :link: docs-get-started-upstream
100*61c4878aSAndroid Build Coastguard Worker      :link-type: ref
101*61c4878aSAndroid Build Coastguard Worker      :class-item: sales-pitch-cta-secondary
102*61c4878aSAndroid Build Coastguard Worker
103*61c4878aSAndroid Build Coastguard Worker      Get set up to contribute to upstream Pigweed.
104*61c4878aSAndroid Build Coastguard Worker
105*61c4878aSAndroid Build Coastguard Worker------------------------------------------
106*61c4878aSAndroid Build Coastguard WorkerUse Pigweed modules in an existing project
107*61c4878aSAndroid Build Coastguard Worker------------------------------------------
108*61c4878aSAndroid Build Coastguard WorkerPigweed is modular: you can use as much or as little of it as you need.
109*61c4878aSAndroid Build Coastguard Worker
110*61c4878aSAndroid Build Coastguard Worker.. grid:: 2
111*61c4878aSAndroid Build Coastguard Worker
112*61c4878aSAndroid Build Coastguard Worker   .. grid-item-card:: :octicon:`rocket` Bazel
113*61c4878aSAndroid Build Coastguard Worker      :link: docs-bazel-integration
114*61c4878aSAndroid Build Coastguard Worker      :link-type: ref
115*61c4878aSAndroid Build Coastguard Worker      :class-item: sales-pitch-cta-primary
116*61c4878aSAndroid Build Coastguard Worker
117*61c4878aSAndroid Build Coastguard Worker      Instructions for how to use a Pigweed module in an existing Bazel
118*61c4878aSAndroid Build Coastguard Worker      project.
119*61c4878aSAndroid Build Coastguard Worker
120*61c4878aSAndroid Build Coastguard Worker   .. grid-item-card:: :octicon:`list-ordered` GitHub Actions
121*61c4878aSAndroid Build Coastguard Worker      :link: docs-github-actions
122*61c4878aSAndroid Build Coastguard Worker      :link-type: ref
123*61c4878aSAndroid Build Coastguard Worker      :class-item: sales-pitch-cta-secondary
124*61c4878aSAndroid Build Coastguard Worker
125*61c4878aSAndroid Build Coastguard Worker      How to set up GitHub Actions to build and test your Bazel-based
126*61c4878aSAndroid Build Coastguard Worker      Pigweed project.
127*61c4878aSAndroid Build Coastguard Worker
128*61c4878aSAndroid Build Coastguard Worker.. toctree::
129*61c4878aSAndroid Build Coastguard Worker   :maxdepth: 1
130*61c4878aSAndroid Build Coastguard Worker   :hidden:
131*61c4878aSAndroid Build Coastguard Worker
132*61c4878aSAndroid Build Coastguard Worker   self
133*61c4878aSAndroid Build Coastguard Worker   First-time setup <first_time_setup>
134*61c4878aSAndroid Build Coastguard Worker   Install Bazel <install_bazel>
135*61c4878aSAndroid Build Coastguard Worker   Bazel quickstart <bazel>
136*61c4878aSAndroid Build Coastguard Worker   Bazel integration <bazel_integration>
137*61c4878aSAndroid Build Coastguard Worker   GitHub Actions <github_actions>
138*61c4878aSAndroid Build Coastguard Worker   Zephyr quickstart <zephyr>
139*61c4878aSAndroid Build Coastguard Worker   Upstream Pigweed <upstream>
140