有没有办法使用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规则的特定属性的内容?