roll: pigweed b805f5a..5da76e8 (6 commits) 5da76e8:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/274352 pw_tokenizer: Add write elf functionality 917f2ae:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/296053 pw_bluetooth_sapphire: Delete StartAdvertisingInternalStep2 return 5996f8f:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/295044 pw_bluetooth_sapphire: LowEnergyAdvertiser Inspect data 11e5296:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/294977 pw_containers: Add InlineAsyncQueue 83781ff:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/295043 pw_bluetooth_sapphire: Remove extended_pdu from AdvertisingHandleMap 150a44c:https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/290593 pw_crypto: Implement ECDH for boringssl Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed Rolled-Commits: b805f5ae82a7d2..5da76e8245ac5f Roll-Count: 1 Roller-URL: https://cr-buildbucket.appspot.com/build/8712910853567570033 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: I0367a936f506f2dd23b918629c6e5c9fcf43b92f Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/296320 Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
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()
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",
],
}),
)
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 //...