Bazel查询特定类型的源文件

时间:2017-11-09 21:13:50

标签: bazel

有没有办法使用hdrs返回规则内特定属性的内容?我希望能够打印出完整(工作区相对)路径的导出标头列表(cc_library的{​​{1}}属性)。

完整的故事是我想执行一个bazel build,然后使用外部脚本打包工件以供另一个构建系统使用,所以我需要能够获取头文件和编译库

对于标题,我想我会查询被标记为公开可见的cc_library目标,获取其依赖项的传递闭包,然后获取其hdrs的并集属性作为我需要复制的头文件。

我可以使用以下方式获取依赖列表:

bazel query 'kind("cc_library", 
                  deps(attr("visibility",
                            "//visibility:public",
                            //... except //tools/...)
                      )
                 )'

我可以通过嵌套上面的内容获得完整的源文件列表:

bazel query 'kind("source file", 
                  deps(kind("cc_library", 
                            deps(attr("visibility",
                                      "//visibility:public",
                                      //... except //tools/...)
                                )
                      ))
                  )' --noimplicit_deps

但是,从源列表中不清楚哪些标题是"导出"在hdrs属性与未导出的srcs属性中。是否有一个bazel查询函数可以选择BUILD规则的特定属性的内容?

1 个答案:

答案 0 :(得分:0)

您需要labels function