Bazel

警告

此功能为实验性功能,可能会发生重大更改。 有关更多信息,请参见 Conan 稳定性 部分。

Bazel 构建助手是 bazel 命令行调用的包装器。 它将诸如 bazel <rcpaths> build <configs> <targets> 的调用抽象为 Python 方法调用。

该助手旨在用于 conanfile.pybuild() 方法中,以便在 Conan 直接构建软件包时自动调用 Bazel 命令(create,install)。

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 构建配置添加 --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:要用作 bazel --bazelrc=rcpath1 ... build 的其他 bazelrc 文件路径列表。

  • tools.google.bazel:configs:要用作 bazel build --config=config1 ... 的 Bazel 配置列表。