commit | e88a627955ad49972a41d277c2fba553954b8ddc | [log] [tgz] |
---|---|---|
author | pigweed-roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> | Thu Mar 06 13:10:37 2025 -0800 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Mar 06 13:10:37 2025 -0800 |
tree | ca02ecc302628528fa26d4276dd0f941c2c6f070 | |
parent | 311925ae4825d463b22b3264c249d9d7c6c7daef [diff] |
roll: pigweed c4fca6b..351d6c1 (6 commits) 351d6c1:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/264642 pw_allocator: Restrict BlockAllocator's public interface 4a365f6:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/252053 pw_malloc: Rename GetSystemAllocator to CreateSystemAllocator 358d2b6:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/272752 pw_clock_tree: Add note in ClockTree::AcquireWith() doc comment 43cf8d7:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/249914 pw_malloc: Synchronize access to the system metrics 986272f:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/273194 pw_bluetooth_sapphire: Remove nbsp 8838270:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/272532 pw_allocator: Re-enable code-size reports Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: c4fca6b2f22121..351d6c113372ea Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8721113358561648529 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: I3625d563c7b4eae31f68df47cb9bf298d4e3a261 Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/273433 Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com> Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.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 //...