mirror of
https://fuchsia.googlesource.com/third_party/pigweed.googlesource.com/pigweed/pigweed
synced 2024-09-21 06:12:09 +00:00
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
|