Может ли Bazel напечатать иерархию правил сборки? - PullRequest
0 голосов
/ 26 февраля 2019

Правила 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.
Есть ли способ использовать базовый запрос для печати этой информации об отношениях?

Вы можете себе представить, насколько трудно узнать, какие правила используются, какие другие правила в проекте увеличиваются в размерах, и доступно много правил.

1 Ответ

0 голосов
/ 27 февраля 2019

Вы можете получить эту информацию через 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

...