当您有嵌套的 Buck 项目时,// 指的是什么?

What does // refer to when you have nested Buck projects?

我正在使用 Buck 构建我的项目,但由于使用了 Git 个子模块,我的文件夹结构很复杂。我的项目布局如下所示:

+ root
+-- .buckconfig // X
+-- BUCK // A
+-- main.cpp
+--+ library // Git Submodule!
   +-- .buckconfig // Y
   +-- BUCK // B
   +--+ anotherLibrary
      +-- .buckconfig
      +-- BUCK // C

BUCK文件C中,我有一个这样的路径://:library。当不用作子模块时,// 将被解析为 library/。这是我想要的行为,即使 library 是一个子模块。

在上面的布局中,//会被解析为.buckconfig X还是.buckconfig Y?

这取决于您 运行 buck 来自哪里。如果你 运行 buck root 命令,它会告诉你 // 指的是哪里。

看起来您可能想要利用 Buck 的一项功能,该功能未记录(并且仍在更改),称为 Cells。最好的文档可能是 one of Buck's tests.