roll: pigweed 236c292..8165b25 (12 commits)

8165b25:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/263913 third_party/freertos: Allow empty glob
a63dba9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/275972 pw_async2: Move classes to their own headers
7fd8ce1:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/264519 pw_log_tokenized: Remove includes, fix layering
42f3db7:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/256594 pw_rpc: Remove system_server multiplexer
ff0dac0:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/276074 pw_toolchain: Fixup compiler helpers for use outside pigweed
0ae3933:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/276134 pw_presubmit: Check includes on .bazelrc changes
f1b817c:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/276073 pw_build: Add -Wthread-safety-beta for upstream gn clang builds
29508f7:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/275352 pw_bluetooth: Add MTU field into L2capOption structure
8cb56bd:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/275892 pw_console: Remove unused ipython dependency
44575e1:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/275914 pw_i2c_mcuxpresso: Fix thread annotation issues
615cb03:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/275912 MODULE.bazel: Use mirror of googletest
a63afba:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/274572 pw_env_setup: Upgrade pylint

Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed
Rolled-Commits: 236c292ed9f516..8165b25e5b05b5
Roll-Count: 1
Roller-URL: https://cr-buildbucket.appspot.com/build/8720355850784922481
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: Ia3b0554ab167bf6c1a561968ea0f4d265695fd1b
Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/276029
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
1 file changed
tree: 0b730ec837b4ff3b0e63ffbce49ece0765097c73
  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 //...