Bazel¶
警告
此功能是实验性的,可能会发生重大更改。有关更多信息,请参阅 Conan 稳定性 部分。
Bazel 构建辅助工具是 bazel 命令行调用的封装。它会将诸如 bazel <rcpaths> build <configs> <targets> 这样的调用抽象成 Python 方法调用。
该辅助工具旨在用于 conanfile.py 的 build() 方法中,以便在包直接由 Conan 构建(create, install)时自动调用 Bazel 命令。
from conan import ConanFile
from conan.tools.google import Bazel
class App(ConanFile):
settings = "os", "arch", "compiler", "build_type"
def build(self):
bz = Bazel(self)
bz.build(target="//main:hello-world")
参考¶
- class Bazel(conanfile)¶
- 参数:
conanfile –
< ConanFile 对象 >当前配方对象。始终使用self。
- build(args=None, target='//...', clean=True)¶
运行 “bazel <rcpaths> build <configs> <args> <targets>” 命令,其中
rcpaths: 为每个 rc 文件路径添加--bazelrc=xxxx。它会监听BazelToolchain(--bazelrc=conan_bzl.rc) 和tools.google.bazel:bazelrc_path配置。configs: 为每个 bazel-build 配置添加--config=xxxx。它会监听BazelToolchain(--config=conan-config) 和tools.google.bazel:configs配置。args: 是添加到bazel build执行的任何额外参数。targets: 所有目标标签。
- 参数:
target – 目标标签。默认是 “//…”,它会运行所有目标。
args – 传递给 CLI 的额外参数列表。
clean – 一个布尔值,指示在运行 “bazel build” 之前运行 “bazel clean”。请注意,这对于确保每个包都获得一个全新的 bazel 缓存很重要。
- test(target=None)¶
运行 “bazel test <targets>” 命令。
属性¶
以下属性会影响 Bazel 构建辅助工具:
tools.build:skip_test=<bool>(布尔值) 如果为True,则运行bazel test <target>。
conf¶
Bazel 会受到这些 [conf] 变量的影响:
tools.google.bazel:bazelrc_path: 要用作 bazel --bazelrc=rcpath1 ... build 的其他 bazelrc 文件的路径列表。tools.google.bazel:configs: 要用作 bazel build --config=config1 ... 的 Bazel 配置列表。