commit | ab847d94791e5ae99e6f8a46f8461b9cb385b3a9 | [log] [tgz] |
---|---|---|
author | Keir Mierle <keir@google.com> | Mon Nov 25 19:56:32 2019 -0800 |
committer | Keir Mierle <keir@google.com> | Wed Nov 27 21:33:13 2019 +0000 |
tree | cd17524214bbb248dab11839037822d8f7a60fef | |
parent | 30b42ef7a16d1dee17c9a71f90854e1be20c161f [diff] |
pw_module: Start the Pigweed meta-module This starts a basic Pigweed meta-module tool. The first tool is a simple checker invoked with pw module-check which for now does two super-simple checks. Example output: $ pw module-check pw_module 20191125 07:53:57 PM INF Checking module: pw_module 20191125 07:53:57 PM INF OK: Module pw_module looks good; no errors or warnings found $ pw module-check pw_foo 20191125 07:54:00 PM INF Checking module: pw_foo 20191125 07:54:00 PM ERR PWCK001: Python code present but no setup.py. 20191125 07:54:00 PM ERR PWCK002: C++ code present but no tests at all (you monster). 20191125 07:54:00 PM ERR FAIL: Found errors when checking module pw_foo Change-Id: I6eb3bfa941abc450a33affbec3e005477b9b2dc4
Pigweed is a collection of embedded-focused libraries, which we call “modules”. These modules are designed for small-footprint MMU-less microcontrollers like the ST Micro STM32L452 or the Nordic NRF82832. The modules are designed to facilitate easy integration into existing codebases.
Pigweed is in the early stages of development.
$ git clone sso://pigweed.googlesource.com/pigweed/pigweed ~/pigweed $ cd ~/pigweed $ . env_setup/setup.sh
The environment setup script will pull down the versions of tools necessary to build Pigweed and add them to your environment. You can then build with either GN or Bazel. You can also confirm you're getting the right versions of tools—they should be installed under env_setup/
.
$ which gn ~/pigweed/env_setup/cipd/tools/gn $ gn gen out/host $ ninja -C out/host
$ which bazel ~/pigweed/env_setup/cipd/tools/bazel $ bazel test //...
And do the following to test on hardware. (The bazel build does not yet support building for hardware.)
$ gn gen --args='pw_target_config = "//targets/stm32f429i-disc1/target_config.gni"' out/disco $ ninja -C out/disco
If any of this doesn't work please file a bug.