roll: pigweed, MODULE.bazel.lock

pigweed 29add2b..0524f95 (11 commits)
0524f95:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/312757 pw_async2: Use the PendResult and PendOptional aliases
e8fd38b:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/313156 pw_bluetooth_proxy: Add TODO for to-host frag tests
b7ccb9a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/313155 pw_bluetooth_proxy: Pass on unhandled recombined PDU
14e2976:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/313154 pw_bluetooth_proxy: Tweaks to recombine null rx allocate test
48d6349:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/313153 pw_bluetooth_proxy: Always fill broadcast_flag
1299d4c:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/312754 pw_presubmit: Allow .expected without copyright
8aa469f:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/313161 pw_presubmit: Exclude codelabs and examples from GN build files check
986f721:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/313157 crates_io: Add serde_json5 to crates_std
b5596a5:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/313160 roll: nanopb
54f34b9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/311536 pw_kernel: Implement has_access for memory configs
ca15544:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/312676 pw_async2: Enable wait reasons by default

MODULE.bazel.lock
Regenerated MODULE.bazel.lock

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