Bazel是否需要外部回购BUILD文件位于$ WORKSPACE_ROOT / external中?

时间:2018-08-11 18:39:38

标签: bazel

我为此创建了一个glfw存储库:

load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")

new_git_repository(
  name = "glfw",
  build_file = "BUILD.glfw",
  remote = "https://github.com/glfw/glfw.git",
  tag = "3.2.1",
)

我将BUILD.glfw放在WORKSPACE根目录中。当我建造时,我看到了:

no such package '@glfw//': Not a regular file: [snipped/external/BUILD.glfw

我将BUILD.glfw移到了external/BUILD.glfw上,它似乎可以正常工作,但是我找不到与此有关的文档。关于new_git_repository的文档说build_file“ ...是相对于主工作区的标签。”我在那儿看不到任何关于“外部”的东西。

2 个答案:

答案 0 :(得分:1)

假设new_git_repository具有与http_archive相同的问题,那么根据Bazel问题6225,您需要将glfw的BUILD文件引用为@ //:BUILD.glfw

答案 1 :(得分:0)

这是由于new_git_repository的本地和(较新的)云雀版本之间的语义差异不一致造成的。要使用本机new_git_repository,请注释/删除load语句:

# load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")