bazel可以打印构建规则的层次结构吗?

时间:2019-02-26 18:10:08

标签: bazel build-rules

Bazel规则可以组成其他bazel规则。 例如:

def cpp_library(name,deps=[]):

    explicit_cpp_file = name + ".cpp"
    explicit_hpp_file = name + ".hpp"

    native.cc_library(
        name = name,
        srcs = [explicit_cpp_file],
        hdrs = [explicit_hpp_file],
        deps = deps,
    )

在这里我们看到cpp_library使用native.cc_library
是否可以使用bazel查询来打印此关系信息?

您可以想象难以想象随着项目规模的增长和许多可用规则的​​出现,很难知道其他哪些规则使用了哪些规则。

1 个答案:

答案 0 :(得分:0)

您可以通过bazel query--output获得此信息。 --output build将在运行宏后显示规则。 --output graph将显示规则之间的关系,例如

bazel query //some/package --output graph | xdot

(或例如| dot -Tpng > /tmp/dep.png

请参见https://docs.bazel.build/versions/master/query.html#output-formats