commit | 2eb93d2b1f9d19a9e81e4abc6bb07ad39258dc0e | [log] [tgz] |
---|---|---|
author | Armando Montanez <amontanez@google.com> | Mon Mar 17 12:31:50 2025 -0700 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Mar 17 12:31:50 2025 -0700 |
tree | b1f7ca566cfc8e7b8c98b5c7443f7d2fd3dda3cb | |
parent | 5f433582eaed07226bc8bf21fd254989f39ca372 [diff] |
Use Pigweed toolchain for Linux The toolchain in the BCR CI doesn't include a sysroot that exposes <linux/netlink.h>, but Pigweed's host Linux toolchain+sysroot does. Use Pigweed's host linux toolchain to ensure the BCR CI checks have everything they need. Bug: b/403670487 Change-Id: If961e0e4fb8ef1907256744633469f01eeb60f8e Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/rules_libusb/+/276354 Reviewed-by: Ted Pudlik <tpudlik@google.com> Pigweed-Auto-Submit: Armando Montanez <amontanez@google.com> Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com> Presubmit-Verified: CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> Commit-Queue: Auto-Submit <auto-submit@pigweed-service-accounts.iam.gserviceaccount.com>
A small wrapper Bazel module that builds libusb from sources. Supports Windows, macOS, and Linux.
At this time, rules_libusb only supports bzlmod projects. Legacy WORKSPACE
projects are not explicitly supported.
Add rules_libusb to your MODULE.bazel
file:
bazel_dep(name = "rules_libusb", version="0.1.0-rc1") libusb = use_extension("@rules_libusb//:extensions.bzl", "libusb") # Versioning constraints are optional. libusb.source_release(min_version = "1.0.27") use_repo(libusb, "libusb")
Note: source_release
constraints follow bzlmod behavior of minimal version selection.
Then add to the tool that requires libusb:
cc_binary( name = "my_tool", srcs = ["main.cpp"], deps = ["@libusb//:libusb"], )
The libusb build file offers two targets to help guide link behavior:
//:libusb
: The generic cc_library
for libusb. Most build targets should just use this.//:libusb_dynamic
: The actual libusb dynamic/shared library (e.g. libusb-1.0.so
).By default, @libusb//:libusb
will always dynamically link. This can be disabled by toggling the flag that controls this:
bazel build //... --@rules_libusb//:force_dynamic_linkage=False
When @rules_libusb//:force_dynamic_linkage
is disabled, the link behavior is fully controlled by your build system, and can be controlled on a per-binary basis by specifying dynamic_deps
on build targets that require dynamic linkage of libusb:
cc_binary( name = "my_tool", srcs = ["main.cpp"], deps = ["@libusb//:libusb"], dynamic_deps = ["@libusb//:libusb_dynamic"], )
To build this repo, run:
bazel build @libusb//:libusb