commit | fc177504fc5ce4eaf963276c01b4d92da9cfd880 | [log] [tgz] |
---|---|---|
author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Thu Mar 20 20:28:44 2025 -0700 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Mar 20 20:28:44 2025 -0700 |
tree | 3c3e74c45d407c33dc166d5aa968e63d578b48bf | |
parent | 2a651417fa60372c12e0d2c735b8841fd6f4ca99 [diff] |
roll: pigweed 62025f5..2d204c8 (13 commits) 2d204c8:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/276794 pw_async2: Add size reports for async2 primitives e6f2293:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/277855 pw_ide: Expect bazel projects to also have a BUILD.bazel in root 6a36094:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/277854 pw_bloat: Add enable_if argument to GN template 0822879:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/277532 pw_ide: Distinguish duplicate targets 1af8e0f:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/276476 pw_bluetooth_proxy: Handle channel dtor during recombination 0f62a5e:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/275693 pw_ide: Use clangd rule from @pigweed directly d932875:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/277552 docs: Explain Label in style guide a7a3cbe:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/272594 pw_ide: Replace compile command refresh with custom implementation 8e2ae80:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/277852 pw_bluetooth_sapphire: Fix l2cap_fuzzer timeout with 1MB input data 24596e9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/276935 bazel: Switch to Python 3.12 9b00f1a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/275714 pw_kernel: Add colors and visual cleanups to console output 69aedd9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/277792 pw_env_setup: Update watchdog 7fbccd0:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/277753 pw_toolchain: Provide pw_InfiniteLoop in C++ Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: 62025f5632afdf..2d204c869204a7 Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8719821154653795025 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: I9d69815ef93dacf83d7329ca5883778f8cde49e8 Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/277824 Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Bot-Commit: 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 //...