Graphviz を使用して、C ヘッダー ファイル間の依存関係のグラフを描画しようとしています。
基本的に、私がやっていることは、表示されるすべての #include と条件 (つまり #if 条件) をログに記録することです。ファイルに別のファイルが含まれている場合、そのファイルはグラフ内でその親になり、潜在的な条件はエッジ ラベルです。
かなり大きなグラフが得られます。この問題は、常に水平 (変更できない) であり、常に左揃えのように見えるエッジ ラベルに起因します (labelloc と labeljust を試しましたが、何も変わりません。「中央」にする正しい方法は何ですか? 1 つのエッジのラベル。
この問題を回避するために、条件をノードとしてレンダリングしようとしました。Ah が ANSI 条件下で Bh を含む場合、Ah から ANSI へのリンクがあり、次に ANSI から Bh へのリンクがあります。問題ないように見えますが、問題は、Ch が同じ条件下で Dh を含む場合、Ah から ANSI へのリンクが表示されることです。 、Ch から ANSI への 1 つ。1 つは ANSI から Bh へ、もう 1 つは ANSI から Dh へ。問題は、 Bh を含むのが Ah なのか Ch なのかわからないことです。ノードを通過するようなものを指定する方法はありますか (ANSI の下にある Ah から Bh へのリンクは、透過性を利用している可能性があります)。