• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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