commit | 17ac2c0f79891b35ac4cfd923fdf9f16872ff659 | [log] [tgz] |
---|---|---|
author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Sat May 10 00:32:08 2025 -0700 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Sat May 10 00:32:08 2025 -0700 |
tree | 5163386fbf987fef4f74d6ef61a246859dc5468a | |
parent | 396190ab8472727dfecf0a1e72b4e73a4211e010 [diff] |
roll: pigweed fb9c8ff..60d5bd8 (6 commits) 60d5bd8:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/289672 pw_sync: Remove try_lock in CheckLocked 7273b90:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/289378 pw_tokenizer: Update definition of DetokenizedString::ok() cc9e6dc:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/289983 pw_system: Make allocator heap size configurable a4fe433:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/289819 zeyphr: Fix missing Kconfig deps on interrupt context ef3eb13:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/289374 pw_ide: Add last bazel build UI indicator 91b3a63:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/289517 pw_bluetooth_proxy: Remove ProxyHost gatt send Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: fb9c8ffd703c05..60d5bd86565d78 Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8715276032874957857 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: Ib82e418a185ac2d600151e3bdd65a7018cd44312 Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/289946 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 //...