【问题标题】:Determine if files are part of any package确定文件是否是任何包的一部分
【发布时间】:2019-11-28 15:56:42
【问题描述】:

鉴于我有一个文件列表,例如foo/src/main.cpp, foo/src/bar.cpp, foo/README.md,是否可以确定哪些文件是 bazel 包的一部分? 在我的示例中,输出将例如是foo/src/main.cpp, foo/src/bar.cpp,因为 README.md 不会是构建的一部分。

一种方法是在每个文件上调用bazel query 并查看它是否会产生输出,但这非常低效,所以我想知道是否有更简单的方法。

背景:我正在尝试确定一组文件中的更改是否会对目标产生影响,我想为此使用bazel query somepath(//some/target, set($FILES)),但如果有任何一个,这将失败$FILES 中的文件不是 BUILD 文件的一部分。

【问题讨论】:

    标签: bazel build-system


    【解决方案1】:

    如何翻转它并查询目标的所有源文件:

    bazel query 'kind("source file", deps(//some:target))'
    

    然后检查结果是否有集合中的任何文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 2010-11-21
      • 2020-12-24
      • 1970-01-01
      相关资源
      最近更新 更多