【发布时间】:2018-07-19 13:26:16
【问题描述】:
是否可以将 bazel 目标与特定工具链/平台相关联?
我想bazel build ... 并让 bazel 为许多不同的目标架构构建相同的 cc_library。并且还跳过特定目标架构的一些目标。
显然,如果我使用不同的标志多次运行 bazel 并标记要忽略的测试,我可以实现这一点。但不是很方便。
【问题讨论】:
标签: bazel
是否可以将 bazel 目标与特定工具链/平台相关联?
我想bazel build ... 并让 bazel 为许多不同的目标架构构建相同的 cc_library。并且还跳过特定目标架构的一些目标。
显然,如果我使用不同的标志多次运行 bazel 并标记要忽略的测试,我可以实现这一点。但不是很方便。
【问题讨论】:
标签: bazel
除非最近发生了一些变化,否则恐怕您(至少目前)在这方面不走运。我对documentation 的理解(以及我在这个区域闲逛时的回忆)是 bazel 最终将匹配给定工具链类型的一个(或没有)工具链(如果多个可能的匹配选择列表中的第一个)。因此,您将无法为一个目标定义一个规则来匹配给定单个构建的多个工具链。
【讨论】:
您可以使用 Bazel transitions 强制使用特定配置构建目标。
https://docs.bazel.build/versions/master/skylark/lib/transition.html
就跳过特定目标而言,这取决于依赖关系图的性质。最简单的方法是使用select 语句来不构建某些依赖项。
见https://docs.bazel.build/versions/master/be/functions.html#select
【讨论】: