commit | ff8638699aa45c58622f22d2d8972ca5809c0b6f | [log] [tgz] |
---|---|---|
author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Tue Mar 25 18:33:40 2025 -0700 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Mar 25 18:33:40 2025 -0700 |
tree | 8a770593f3414337c7dc3f4f505de77c6c92c307 | |
parent | 17d6fe938fda4d9d2002a3a03a8b008a66c355ad [diff] |
roll: pigweed 2861b6a..1e464ac (13 commits) 1e464ac:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278675 pw_kernel: Fix missing log statements be9140e:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278872 pw_build: Use --output_base for build_dir 7d91dfc:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278676 pw_kernel: Use clang toolchain cortex-m builds a9c1069:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278674 pw_tokenizer: Encode u8 as varint in rust tokenizer 8f6c6b4:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278492 pw_kernel: Always compiler fence when dropping interrupt guard 5b78009:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/276112 pw_kernel: Basic implementation for riscv32 257025a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278812 pw_console: Fix lost focus when moving tabs 7f2b75e:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278363 pw_i2c_mcuxpresso: Track actual assigned i3c addresses 61c6096:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278367 pw_i2c_mcuxpresso: Revert i2c to use Blocking calls ed7ac2a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278383 pw_hdlc: Add PendWrite() to the router Router::WriteOutgoingMessages() abd5df8:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278452 pw_bluetooth_sapphire: Fix iso asan/tsan failures 684d4e9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278632 pw_bluetooth_sapphire: Fix central and peripheral tests 8dab133:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278455 pw_bluetooth_sapphire: Fix UBSAN failures in l2cap fuzz tests Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: 2861b6ad5f94c2..1e464ac2e81e04 Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8719375565470383121 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: Ifee1e32f9aef65f77d92e09a2404f5d7d4778cec Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/279232 Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Lint: Lint 🤖 <android-build-ayeaye@system.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 //...