commit | 7830e1a619402318cf0af958027560e493524619 | [log] [tgz] |
---|---|---|
author | Wyatt Hepler <hepler@pigweed.infra.roller.google.com> | Thu May 26 03:14:39 2022 +0000 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu May 26 03:19:49 2022 +0000 |
tree | dd590eb615ec7dee3fead8cd979f941f2c43513f | |
parent | 90baa8455faaa66746a3bb4a44681a8cbce6e18b [diff] |
[roll third_party/pigweed] pw_unit_test: Restructure as a facade pw_unit_test has been being used as if it is a facade, without actually being structured as one. This causes problems when using upstream GoogleTest. Shared test code might depend on //pw_unit_test and pull in Pigweed's tests headers, even when pw_unit_test_PUBLIC_DEPS is configued to use upstream GoogleTest. Pigweed's test framework is not properly set up, resulting in odd behavior. Also, this means there are multiple versions of gtest/gtest.h, its macros, and ::testing::Test in the build. This change introduces the pw_unit_test_GOOGLETEST_BACKEND build arg and restructures pw_unit_test as a facade, so targets that depend on //pw_unit_test depend on the actual GoogleTest implementation in use, rather than just Pigweed's version. The Pigweed GoogleTest implementation is rebranded as //pw_unit_test:light. This is used as the default pw_unit_test backend. Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/95843 https://pigweed.googlesource.com/pigweed/pigweed third_party/pigweed Rolled-Commits: c592be595f28b1d..a80b43fb5100f72 Roller-URL: https://ci.chromium.org/b/8813136772880136065 Cq-Cl-Tag: roller-builder:pigweed-experimental-roller Cq-Cl-Tag: roller-bid:8813136772880136065 CQ-Do-Not-Cancel-Tryjobs: true Change-Id: I4998f75e3474fb2c365f6ab200cf98af97ab7ea3 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/96028 Bot-Commit: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com> Commit-Queue: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
This repository contains experimental pigweed modules.
Clone this repo with --recursive
to get all required submodules.
git clone --recursive https://pigweed.googlesource.com/pigweed/experimental
This will pull the Pigweed source repository into third_party/pigweed
. If you already cloned but forgot to --recursive
run git submodule update --init
to pull all submodules.
The //pw_graphics folder contains some libraries for drawing to an RGB565 framebuffer and displaying it on various platforms.
The demo applications that make use of these libraries are:
First time setup:
git clone --recursive https://pigweed.googlesource.com/pigweed/experimental cd experimental . ./bootstrap.sh pw package install imgui pw package install glfw pw package install stm32cube_f4
Compile:
gn gen out --export-compile-commands --args=" dir_pw_third_party_stm32cube_f4=\"$PROJECT_DIR/.environment/packages/stm32cube_f4\" " ninja -C out
Flash:
openocd -f third_party/pigweed/targets/stm32f429i_disc1/py/stm32f429i_disc1_utils/openocd_stm32f4xx.cfg -c "program out/stm32f429i_disc1_stm32cube_debug/obj/applications/terminal_display/bin/terminal_demo.elf verify reset exit"
Compile:
gn gen out --export-compile-commands --args=" dir_pw_third_party_imgui=\"$PROJECT_DIR/.environment/packages/imgui\" " ninja -C out
Run:
out/host_debug/obj/applications/terminal_display/bin/terminal_demo
Clone the pico-sdk repo:
cd $HOME git clone https://github.com/raspberrypi/pico-sdk
Compile:
gn gen out --export-compile-commands --args=" PICO_SRC_DIR=\"$HOME/pico-sdk\" " ninja -C out
Create a uf2 file for flashing the Pico with:
./out/host_debug/obj/targets/rp2040/bin/elf2uf2 ./out/rp2040/obj/applications/terminal_display/bin/terminal_demo.elf ./out/rp2040/obj/applications/terminal_display/bin/terminal_demo.uf2
Copy ./out/rp2040/obj/applications/terminal_display/bin/terminal_demo.uf2
to your Pi Pico.