如何使用
bazel
在具有外部依赖项的不同平台上从相同的源代码构建?
autoconf 样式中也可能有平台相关的标志,应该传递给编译器。
我主要关心 C 和 C++
Bazel 中有一个名为
select()
的功能,它允许用户在具有外部依赖项的不同平台上切换构建规则属性的值
例如,这可以用于自动为体系结构选择适当实现的多平台库,或者用于可以在构建时自定义的功能可配置二进制文件。 例如:
sh_binary(
name = "my_target",
srcs = ["my_target.sh"],
hdrs = ["my_target.h"],
deps = select({
"<condition>": ["<source>: dependency",],
...
...
...
}),
)
这也记录在 Bazel select 和 dependencies.