Bazel 建構系統
Bazel 是一個開源建構和測試工具,可以輸出 graphviz 相依性圖。
此圖是透過查詢 Abseil (一個 C++ 函式庫) 的原始碼,找出 Abseil 的隨機數函式庫依賴 Abseil 字串函式庫的所有方式所產生。使用 --output=graph
會輸出 Graphviz 圖。
bazel query --output=graph --notool_deps 'allpaths(//absl/random, //absl/strings)' | dot -Tsvg > /tmp/deps.svg
詳情請參閱 Bazel 查詢操作說明。
bazel.gv.txt
digraph mygraph {
fontname="Helvetica,Arial,sans-serif"
node [fontname="Helvetica,Arial,sans-serif"]
edge [fontname="Helvetica,Arial,sans-serif"]
node [shape=box];
"//absl/random:random"
"//absl/random:random" -> "//absl/random:distributions"
"//absl/random:random" -> "//absl/random:seed_sequences"
"//absl/random:random" -> "//absl/random/internal:pool_urbg"
"//absl/random:random" -> "//absl/random/internal:nonsecure_base"
"//absl/random:distributions"
"//absl/random:distributions" -> "//absl/strings:strings"
"//absl/random:seed_sequences"
"//absl/random:seed_sequences" -> "//absl/random/internal:seed_material"
"//absl/random:seed_sequences" -> "//absl/random/internal:salted_seed_seq"
"//absl/random:seed_sequences" -> "//absl/random/internal:pool_urbg"
"//absl/random:seed_sequences" -> "//absl/random/internal:nonsecure_base"
"//absl/random/internal:nonsecure_base"
"//absl/random/internal:nonsecure_base" -> "//absl/random/internal:pool_urbg"
"//absl/random/internal:nonsecure_base" -> "//absl/random/internal:salted_seed_seq"
"//absl/random/internal:nonsecure_base" -> "//absl/random/internal:seed_material"
"//absl/random/internal:pool_urbg"
"//absl/random/internal:pool_urbg" -> "//absl/random/internal:seed_material"
"//absl/random/internal:salted_seed_seq"
"//absl/random/internal:salted_seed_seq" -> "//absl/random/internal:seed_material"
"//absl/random/internal:seed_material"
"//absl/random/internal:seed_material" -> "//absl/strings:strings"
"//absl/strings:strings"
}