roll: pigweed 6f8a537..8bae44a (9 commits)

8bae44a:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/294852 pw_kernel: Copy all sections into the merged elf file
f40c5bf:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/294092 pw_kernel: Panic detection tests for mps2_an505 and qemu_virt_riscv32
775e4ca:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/293835 pw_kernel: Refactor to remove panicky code
d79101e:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/294974 pw_console: Mouse column resizing
4869e6f:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/295073 pw_bluetooth: Fix bit ordering in android opus
ea85eb9:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/280333 pw_build: Minor docs tweak to required Bazel flags
bc6bc17:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/295112 docs: Make the changelog notice more prominent
6585387:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/295072 Revert "pw_rpc: Remove fake_channel_output.cc from pw_rpc_src_files"
496aa21:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/294805 .gitignore: Add aider files

Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed
Rolled-Commits: 6f8a537cf61ab5..8bae44afd85f30
Roll-Count: 1
Roller-URL: https://cr-buildbucket.appspot.com/build/8713490123185427761
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: If2e86c1d26ec1f20b54be811fc3e0e834b643004
Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/295181
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>
1 file changed
tree: 8075891e6ce8e5f8a56e3fa1732ec1da3c4efa15
  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 //...