mirror of
https://fuchsia.googlesource.com/third_party/pigweed.googlesource.com/pigweed/pigweed
synced 2024-09-21 06:12:09 +00:00
d45e2343cb
Change-Id: Ie97a18499040bba4e0061dfa192e81f617c68c9e
40 lines
1.6 KiB
ReStructuredText
40 lines
1.6 KiB
ReStructuredText
.. _chapter-pw-env_setup:
|
||
|
||
------------
|
||
pw_env_setup
|
||
------------
|
||
A classic problem in the embedded space is reducing the time from git clone
|
||
to having a binary executing on a device. The issue is that an entire suite
|
||
of tools is needed for non-trivial production embedded projects. For example:
|
||
|
||
- A C++ compiler for your target device, and also for your host
|
||
- A build system or three; for example, GN, Ninja, CMake, Bazel
|
||
- A code formatting program like clang-format
|
||
- A debugger like OpenOCD to flash and debug your embedded device
|
||
- A known Python version with known modules installed for scripting
|
||
- A Go compiler for the Go-based command line tools
|
||
|
||
...and so on
|
||
|
||
In the server space, container solutions like Docker or Podman solve this;
|
||
however, in our experience container solutions are a mixed bag for embedded
|
||
systems development where one frequently needs access to native system
|
||
resources like USB devices, or must operate on Windows.
|
||
|
||
pw_env_setup is our compromise solution for this problem that works on Mac,
|
||
Windows, and Linux. It leverages the Chrome packaging system `CIPD`_ to
|
||
bootstrap a Python installation, which in turn inflates a virtual
|
||
environment. The tooling is installed into your workspace, and makes no
|
||
changes to your system. This tooling is designed to be reused by any
|
||
project.
|
||
|
||
.. _CIPD: https://github.com/luci/luci-go/tree/master/cipd
|
||
|
||
.. warning::
|
||
At this time pw_env_setup works for us, but isn’t well tested. We don’t
|
||
suggest relying on it just yet. However, we are interested in experience
|
||
reports; if you give it a try, please `send us a note`_ about your
|
||
experience.
|
||
|
||
.. _send us a note: pigweed@googlegroups.com
|