bazel - 如何使用 Bazel 检测 "select"中的 Xcode 版本

标签 bazel

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

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

我看到有 xcode_toolchainxcode_version 的配置片段,但我不相信我可以选择它们。我们不希望通过命令行配置规范或动态生成 BUILD 文件(如果可能的话)来告诉 bazel 它正在使用哪个 Xcode 版本(出于 CFLAGS 的目的),特别是因为 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"},
)

您应该能够选择此选项。

关于bazel - 如何使用 Bazel 检测 "select"中的 Xcode 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43190835/

相关文章:

Python 无法从 bazel git_repository() 依赖项导入包

c++ - 系统 libc 文件的 Clang 工具链失败

java - Lombok 注释在测试中未处理 - Bazel

go - 如何理解bazel覆盖coverage.dat文件?

c++ - 如果 copts 不允许系统路径,如何引用外部依赖项使用的系统库?

bazel - 如何查找 bazel 目标生成的可执行文件

java - 将 xml 资源文件添加到 Bazel 中的类路径

Bazel:如何访问 Skylark 中的工作区状态变量?

ruby - 如何在 Travis-CI 上为 TensorFlow 构建共享库

android - Bazel 主机(x86 linux)linkopts 传播到目标(android)