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 构建配置添加 `--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 配置列表。