Posts
Doxygen + Graphviz を使って呼び出し依存関係図を生成する
久しぶりに Doxygen でドキュメントを生成しようかと思ったら、使い方を忘れてしまっていたので、備忘録として手順を書いておく。
Doxygen の使い方
まず、下記コマンドを実行してスケルトンとなる設定ファイルを生成。
doxygen -g
カレントディレクトリに Doxyfile という名前でファイルが出力されるので、エディタで開いてカスタマイズを行う。
変更が必要そうな主な設定は以下の通り。
項目名 | 意味 | 設定例 |
---|---|---|
PROJECT_NAME | プロジェクト名 | "Knuckle Fighter Maniax" |
OUTPUT_DIRECTORY | ドキュメントの出力先 | "C:\My Program\doxygen" |
OUTPUT_LANGUAGE | 出力言語 | Japanese |
FULL_PATH_NAMES | 出力ファイル名をフルパスにする | NO |
OPTIMIZE_OUTPUT_FOR_C | C 言語に最適化 | YES |
EXTRACT_ALL | 全てを展開 | YES |
INPUT | ソースファイルのパス | "C:\My Program" |
INPUT_ENCODING | ソースファイルの文字コード | SHIFT_JIS |
FILE_PATTERNS | 対象とするファイル | *.cpp *.h |
RECURSIVE | サブディレクトリーも含める | YES |
VERBATIM_HEADERS | ドキュメントにヘッダーを引用 | NO |
GENERATE_TREEVIEW | ツリービューの利用 | YES |
ENUM_VALUES_PER_LINE | 列挙型を行に並べる数 | 1 |
GENERATE_LATEX | LATEX 版の出力 | NO |
修正が終わったら、オプションに設定ファイル名を付加した以下のコマンドを実行する。
doxygen Doxyfile
出力先にディレクトリが自動で作成されるので、その中にある index.html を開く。
Graphviz の使い方
今回最大の目的はヘッダーファイルの依存関係を可視化することなので、Graphviz という別のグラフツールを使って依存関係を図として出力する。これを行うには、Graphviz のインストールと Doxyfile への設定追加が必要になる。
項目名 | 意味 | 設定例 |
---|---|---|
HAVE_DOT | dot ツールの有無 | YES |
DOT_NUM_THREADS | グラフ生成時のスレッド数 | 4 |
UML_LOOK | 継承図を UML 風にする | YES |
CALL_GRAPH | 呼び出し依存関係図の生成 | YES |
CALLER_GRAPH | 呼び出し元依存関係図の生成 | YES |
DOT_PATH | dot ツールの位置 | "C:\Program Files\Graphviz 2.28\bin" |
設定が終わったら Doxygen を再実行する。
コンパイラは不必要なヘッダーファイルを読み込んでも注意してくれないので、ドキュメントツールを使って最適化するのがヨサゲ。