首页 > 解决方案 > 在 Bazel 中,有没有办法根据 cpu / 平台的命令行选择以编程方式设置 host_cpu / host_platform ?

问题描述

我有一个项目,其中包含针对多种架构的二进制文件。每种架构的工具链都与主机工具链的版本略有不同。

此时用户需要手动指定 --host_cpu 和 --cpu 标志,但 host_cpu 总是可以直接从 cpu 的值导出。

是在 BUILD 文件/Starlark 级别完成它的方法吗?

编辑:当我的问题非常狭窄时,我可能已经把问题说得太宽泛了:有没有办法通过将代码放入 WORKSPACE/BUILD/.bzl 文件中来使下面的两个 bazel 调用等效,该文件将在内部编辑host_cpu 标志等于根据 cpu 标志的值计算的值。

bazel build --cpu=CPU_A --host_cpu=HOST_CPU_A

相当于

bazel build --cpu=CPU_A

bazel build --cpu=CPU_B --host_cpu=HOST_CPU_B

相当于

bazel build --cpu=CPU_B

我知道可能有解决方法和替代解决方案,但我试图确定这个狭窄的问题是否有一个肯定的答案。

标签: bazel

解决方案


推荐阅读