Bazel¶
警告
此功能为实验性功能,可能会有重大变更。有关更多信息,请参阅Conan 稳定性章节。
Bazel
构建助手是 bazel 命令行调用的包装器。它将诸如 bazel <rcpaths> build <configs> <targets>
之类的调用抽象为 Python 方法调用。
该助手旨在用于 conanfile.py 的 build()
方法中,以便在 Conan 直接构建包时(创建、安装)自动调用 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 object >
当前的 recipe 对象。始终使用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>
。
配置¶
Bazel
受以下 [conf] 变量的影响
tools.google.bazel:bazelrc_path
: 其他 bazelrc 文件的路径列表,用作 bazel --bazelrc=rcpath1 ... build。tools.google.bazel:configs
: Bazel 配置列表,用作 bazel build --config=config1 ...。