Может ли Bazel напечатать иерархию правил сборки?
Правила 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 ответ
Вы можете получить эту информацию через bazel query
с --output
, --output build
покажет правила после запуска макросов. --output graph
покажет отношения между правилами, например
bazel query //some/package --output graph | xdot
(или, например, | dot -Tpng > /tmp/dep.png
)