roll: pigweed 1e464ac..d2241c7 (13 commits)

d2241c7:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/279613 pw_ide: Configure Bazel settings automatically after a timeout
6be7274:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/279113 pw_ide: Select first target if none is set
7941b5b:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/279492 Revert "pw_tokenizer: Add support for nested tokenization in C++"
8ee9b49:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/279532 pw_protobuf_compiler: Rephrase import statement
a63c499:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278432 pw_protobuf_compiler: Make --compile-dir optional
bfff1ff:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278493 pw_ide: Use CIPD clangd for non-Bazel targets
2d7b882:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278877 pw_bluetooth_sapphire: Fix gtest macro sign error
ebeb08b:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278392 pw_protobuf_compiler: Add UT for generate_protos.py
e936455:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/279472 pw_bluetooth: Add sarahbodin@google to OWNERS
b83cfa9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/279452 pw_bluetooth_sapphire: Add sarahbodin@google to OWNERS
8c6e65d:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/275179 pw_presubmit: Migrate owners formatter
0cc57ee:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278732 pw_toolchain: Fix typo
982bc7d:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/278678 pw_bluetooth_sapphire: Fix basic_mode_rx_engine_fuzzer

Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed
Rolled-Commits: 1e464ac2e81e04..d2241c7b1eaa16
Roll-Count: 1
Roller-URL: https://cr-buildbucket.appspot.com/build/8719286445831877297
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I0f433d9dc81983f5b974fff4f171aa534aa3e69c
Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/279673
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: 8401a72750c660d9a4191415b874a8c009ae0338
  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 //...