| commit | 9eb85b963da830bed142409db8bbb3184fdca293 | [log] [tgz] |
|---|---|---|
| author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Mon May 12 23:20:50 2025 -0700 |
| committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon May 12 23:20:50 2025 -0700 |
| tree | b7ad63b5976e205e223bc87a96fa7cbfbfcc16f5 | |
| parent | ad9730b5f2a9474c7368c52f8a38de920dc9c115 [diff] |
roll: pigweed 1adb3ee..285091b (6 commits) 285091b:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/286592 pw_tokenizer: Forbid %.*s in format strings bb8ce61:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/287132 pw_minimal_cpp_stdlib: Implement string_view::find() 3fe6ddb:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/290712 pw_system: Add missing GN dep for pw_log_tokenizer/handler.h c804735:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/290632 pw_string: Move hex.h from pw_bluetooth/internal to pw_string 935fd39:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/290553 zephyr: Fix redundant kconfig dependencies for sync 88ceddf:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/287975 pw_containers: Make InlineDeque tests shareable with other containers Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: 1adb3ee53725c2..285091bd42df9f Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8715008669805394833 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: I422d543a36afbb52e3b7ebdf87b493180bfaf014 Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/290837 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 //...