Bazel允许用户在BUILD文件中定义特定于编译器的标志。可以使用“select”函数在不同平台上切换标志。以下是使用gcc和clang标记的示例:
cc_binary(
name = "my_binary",
srcs = ["my_source.cc"],
copts = select({
"//conditions:default": [
"-Wall",
"-Werror",
"-O2",
],
"//conditions:default and @gcc": [
"-march=native",
"-fstack-protector-strong",
],
"//conditions:default and @clang": [
"-march=native",
"-fstack-protector-all",
],
}),
)
在上面的示例中,“select”函数将根据条件设置不同的标志。