roll: pigweed aa22856..2861b6a (15 commits)

2861b6a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278332 pw_protobuf_compiler: Fix unused variable
3003d35:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278454 pw_bluetooth_sapphire: Re-enable UBSAN tests in sm
c658b93:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278393 pw_bluetooth_sapphire: Fix gatt UBSAN failure
3ccc4c6:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278453 pw_bluetooth_sapphire: Remove outdated TODO
011a081:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/274695 pw_bluetooth_proxy: Implement L2CAP configuration request handling
096b4e7:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/276332 pw_bluetooth_sapphire: Return credits after reading
5fd1e1f:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278377 docs: Warn about LED not working on Pico W
244b3d0:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278032 pw_ide: Stricter detection of Bazel projects
fd7055a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/277793 pw_async2: Add debugging logs and metrics to dispatcher
cdb6318:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/277954 pw_ide: Allow compDB refresh of bootstrap projects
df8b1de:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278033 pw_ide: Fix target display name
24fc182:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278152 pw_bluetooth_sapphire: Fix common ubsan failures
089e227:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278292 pw_multibuf: Reduce stack usage in test
7bf3b52:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278352 pw_build: Add test for subpackage directory globbing
e38b971:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278153 pw_bluetooth_sapphire: Fix hci ubsan failures

Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed
Rolled-Commits: aa2285683111b0..2861b6ad5f94c2
Roll-Count: 1
Roller-URL: https://cr-buildbucket.appspot.com/build/8719464676957691601
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I343bd99200282fb16d0e53d4c0793c6698be0191
Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/278385
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>
1 file changed
tree: 9d103093250a7760b7ef3d41afd72699c25c5bc5
  1. .vscode/
  2. arch/
  3. boards/
  4. drivers/
  5. dts/
  6. examples/
  7. include/
  8. kernel/
  9. lib/
  10. modules/
  11. scripts/
  12. soc/
  13. subsys/
  14. AUTHORS
  15. BUILD.bazel
  16. cc.bzl
  17. CONTRIBUTING.md
  18. defs.bzl
  19. generate_diff.py
  20. LICENSE
  21. MODULE.bazel
  22. MODULE.bazel.lock
  23. OWNERS
  24. README.md
  25. setup.bzl
  26. WORKSPACE
README.md

Zephyr-Bazel

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()

Application

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",
        ],
    }),
)

Examples

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 //...