commit | bcb6c25d7b4f83e59f1126b189fd1ea202439030 | [log] [tgz] |
---|---|---|
author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Wed Mar 26 18:09:23 2025 -0700 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Mar 26 18:09:23 2025 -0700 |
tree | 8401a72750c660d9a4191415b874a8c009ae0338 | |
parent | ff8638699aa45c58622f22d2d8972ca5809c0b6f [diff] |
roll: pigweed 1e464ac..d2241c7 (13 commits) d2241c7:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/279613 pw_ide: Configure Bazel settings automatically after a timeout 6be7274:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/279113 pw_ide: Select first target if none is set 7941b5b:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/279492 Revert "pw_tokenizer: Add support for nested tokenization in C++" 8ee9b49:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/279532 pw_protobuf_compiler: Rephrase import statement a63c499:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278432 pw_protobuf_compiler: Make --compile-dir optional bfff1ff:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278493 pw_ide: Use CIPD clangd for non-Bazel targets 2d7b882:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278877 pw_bluetooth_sapphire: Fix gtest macro sign error ebeb08b:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278392 pw_protobuf_compiler: Add UT for generate_protos.py e936455:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/279472 pw_bluetooth: Add sarahbodin@google to OWNERS b83cfa9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/279452 pw_bluetooth_sapphire: Add sarahbodin@google to OWNERS 8c6e65d:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/275179 pw_presubmit: Migrate owners formatter 0cc57ee:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278732 pw_toolchain: Fix typo 982bc7d:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278678 pw_bluetooth_sapphire: Fix basic_mode_rx_engine_fuzzer Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: 1e464ac2e81e04..d2241c7b1eaa16 Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8719286445831877297 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: I0f433d9dc81983f5b974fff4f171aa534aa3e69c Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/279673 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 //...