Bazel可以使用多个WORKSPACE文件吗?

时间:2018-05-24 22:38:47

标签: bazel toolchain abseil

假设我正在使用特定的CROSSTOOL +工具链,例如this one,我想使用该工具链编译第三方库,例如abseil。是否可以在不修改第三方lib的WORKSPACE

的情况下这样做

如果我必须修改工作区,为工具链回购添加local_repository()规则似乎足够合理。但在这种情况下,我无法让它工作,除非我从工具链工作区复制new_http_archive() entry(它引入了实际的工具链二进制文件)。需要添加local_repository的依赖项对我来说似乎很奇怪 - 它们不应该被引入吗?

我可以对工具链回购进行更改,但更愿意不必修改或以其他方式修改第三方包。更改编译器似乎不需要修改要构建的包。

1 个答案:

答案 0 :(得分:1)

  

需要添加local_repository的依赖项对我来说似乎很奇怪 - 它们不应该被引入吗?

不幸的是,WORKSPACE文件不是递归的,因此不会自动引入传递依赖项。使用宏来引入依赖项的依赖关系是一种常见模式,例如rules_go中的go_rules_dependencies()。管理外部存储库的Bazel子团队有一个解决此here的路线图条目。