roll: pigweed 6f8a537..8bae44a (9 commits) 8bae44a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/294852 pw_kernel: Copy all sections into the merged elf file f40c5bf:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/294092 pw_kernel: Panic detection tests for mps2_an505 and qemu_virt_riscv32 775e4ca:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/293835 pw_kernel: Refactor to remove panicky code d79101e:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/294974 pw_console: Mouse column resizing 4869e6f:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/295073 pw_bluetooth: Fix bit ordering in android opus ea85eb9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/280333 pw_build: Minor docs tweak to required Bazel flags bc6bc17:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/295112 docs: Make the changelog notice more prominent 6585387:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/295072 Revert "pw_rpc: Remove fake_channel_output.cc from pw_rpc_src_files" 496aa21:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/294805 .gitignore: Add aider files Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: 6f8a537cf61ab5..8bae44afd85f30 Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8713490123185427761 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: If2e86c1d26ec1f20b54be811fc3e0e834b643004 Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/295181 Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com> Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
The way this repository works is by overlaying itself on top of Zephyr. To get started, first make sure you have Bazel‘s skylib version 1.7.1 or greater. If you don’t have it, you can use:
http_archive(
name = "bazel_skylib",
sha256 = "bc283cdfcd526a52c3201279cda4bc298652efa898b10b4db0837dc51652756f",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
],
)
load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
bazel_skylib_workspace()
To grab the zephyr-bazel repo, use a git_repository rule in your WORKSPACE, such as:
git_repository(
name = "zephyr-bazel",
remote = "https://pigweed.googlesource.com/zephyr/zephyr-bazel"
branch = "main",
)
Once you have @zephyr-bazel, we can load the patch rule to generate the Zephyr diff that will augment Zephyr to include the BUILD.zephyr rules.
load("@zephyr-bazel//:setup.bzl", "create_zephyr_patch_file")
create_zephyr_patch_file(
name = "zephyr-patch",
filename = "patch.diff",
# This is optional, use it to see what's going on under the hood
debug = True,
)
We now have a diff file at @zephyr-patch//:patch.diff. We're ready to load Zephyr.
git_repository(
name = "zephyr",
remote = "https://github.com/zephyrproject-rtos/zephyr.git",
branch = "main",
patches = [
"@zephyr-patch//:patch.diff",
],
)
The final step will be to load Zephyr's python dependencies:
load("@rules_python//python:pip.bzl", "pip_parse")
pip_parse(
name = "py_deps",
python_interpreter_target = interpreter,
requirements_lock = "@@zephyr//:scripts/requirements-base.txt",
)
load("@py_deps//:requirements.bzl", zephyr_install_deps = "install_deps")
zephyr_install_deps()
In your main application, you can now use the Zephyr utilities for building your app.
load("@zephyr//:defs.bzl", "dts_cc_library")
dts_cc_library(
name = "app_native_sim_dts",
dts_lib = "@zephyr//boards/native/native_sim:native_sim",
)
cc_binary(
...
deps = [
...
"@zephyr//:zephyr",
] + select({
"@platform//cpu:x86_64": [
":app_native_sim_dts",
"@zephyr//include:posix",
],
}),
copts = select({
"@platform//cpu:x86_64": [
"-DCONFIG_ARCH_POSIX=1",
],
}),
)
There is currently just 1 example, you can run it via:
$ cd examples/hello_dts $ bazel run :app
Or, you can run the tests via:
$ cd examples/hello_dts $ bazel test //...