如何使用Bazel在“选择”中检测Xcode版本

有没有办法在选择或某种等效的动态机制中使用
Xcode版本值?

这样做的动机是我们必须在我们的管道和开发人员桌面上支持Xcode的多个修订版.当使用相同的构建基础结构支持多个Xcode修订时,需要以编程方式修改用于CFLAGS的命令行参数,例如指定不同的优化,调试和警告标志.例如,我们只想为Xcode 8.3或更高版本指定某些标志.

我看到有xcode_toolchain和xcode_version的配置片段,但我不相信我可以选择那些.我们不希望告诉bazel它正在使用哪个Xcode版本(出于CFLAGS的目的)或者通过命令行配置规范,或者通过动态生成BUILD文件,特别是因为Bazel应该已经知道它正在使用哪个版本.

对于这种情况,是否有更好的推荐方法?

最佳答案

I see there are configuration fragments for xcode_toolchain and xcode_version, but I don’t believe I can select on those.

你遇到了什么问题?

如果使用xcode_version指定配置设置,例如:

config_setting(
  name = "xcode_7_1" + vers,
  values = {"xcode_version": "7.1"},
)

你应该可以选择这个.

点赞