コードからドキュメントを自動生成してくれる、力強い味方「Doxygen」!
コイツに「graphviz」というツールを組み合わせると……
ドキュメントに図が勝手に!?
こんな便利なことがあっていいのか!?
ということで、やり方をまとめてみました!
- どんなものが作れるの?
- Doxygenについて
- graphvizのインストール
- テスト用ソース
- Doxgenファイルの作成
- あとはDoxygenを実行して出力!
- 出力ドキュメントの確認
- 参考
- あとがき
どんなものが作れるの?
こんなものや
こんなものです。
Doxygenについて
コチラを参照。
graphvizのインストール
このページにアクセスして、手順3へ!
トップページから見る場合は、こちらからアクセスして、手順を追ってください!
- 上部メニューからDownload
- Windows欄の「Stable x.xx Windows install packages」
- X.XX Stable Releaseからインストーラ(msi)またはzipをお好みでダウンロード
インストーラならインストール。
zipなら任意のフォルダに展開。
「<展開先/インストール先>\release\bin」のPATHを通す。
インストール確認
下記コマンドでバージョン情報が出ればOK。
>dot -V dot - graphviz version 2.38.0 (20140413.2041)
テスト用ソース
コチラからダウンロードすることもできます。
doxygen-graphviz_sample.zip - Google ドライブ
Main.c
#include <stdio.h> #include "calc.h" /** * @fn int main(void) * @brief メイン関数 * @return int 終了コード */ int main(void) { printf("hello\n"); add(1, 2); sub(5, 3); show(10, 5); return 0; }
calc.c
#include <stdio.h> #include "calc.h" /** * @fn int add(int x, int y) * @brief 加算関数 * @param[in] x(数値1) 数値1 * @param[in] y(数値2) 数値2 * @return int 加算結果 */ int add(int x, int y) { return x + y; } /** * @fn int sub(int x, int y) * @brief 減算関数 * @param[in] x(数値1) 数値1 * @param[in] y(数値2) 数値2 * @return int 減算結果 */ int sub(int x, int y) { return x - y; } /** * @fn void show(int x, int y) * @brief 一括計算結果表示関数 * @param[in] x(数値1) 数値1 * @param[in] y(数値2) 数値2 */ void show(int x, int y) { printf("x,y ---\n"); printf(" add > %d\n", x, y); printf(" sub > %d\n", x, y); }
calc.h
#ifndef __CALC_H__ #define __CALC_H__ int add(int x, int y); int sub(int x, int y); void show(int x, int y); #endif
Doxgenファイルの作成
こちらでも書きましたが
出力したいフォルダをコマンドプロンプトで開いて
doxygen -g
でテンプレートが作られます。
コレを編集して、自分用の設定ファイルを作ります。
編集する箇所
ベースとなる箇所はコレ。
項目名 | 値 | 備考 |
---|---|---|
PROJECT_NAME | 任意のプロジェクト名 | |
OUTPUT_LANGUAGE | 出力言語 | English/Japaneseお好みで |
EXTRACT_ALL | YES | |
INPUT | ソース置き場のパス | |
INPUT_ENCODING | ソースのエンコード | Shift-JISは「CP932」 |
FILE_PATTERNS | ソースの拡張子 | 例:C系なら「.c .cpp *.h」など |
RECURSIVE | YES | |
EXCLUDE_PATTERNS | 除外パス | 例: .\lib\配下なら「/lib/」 |
GENERATE_LATEX | YES/NO | LATEXの出力有無お好みで |
コレに追加で、図を出力する為の設定も変更していきます。
項目名 | 値 | 備考 |
---|---|---|
HAVE_DOT | YES | |
CALL_GRAPH | YES | 「呼び出し関係図」生成 |
CALLER_GRAPH | YES | 「被呼び出し関係図」生成 |
DOT_PATH | graphvizのパス | PATH通していれば不要らしい |
あとはDoxygenを実行して出力!
あとは図なしのとき同様、Doxygenコマンドを実行して、ドキュメントを出力してもらうだけ!
doxygen
ソースの量によっては、それなりに時間がかかるかもしれません。
finished...
の表示が出て完了するのを待ちましょう!
出力ドキュメントの確認
作成されたドキュメントを開いて確認しましょう!
.\html\index.html
こういうのや……
こういうのが出ていたら……
大成功です!!
参考
こちらを参考にしました。ありがとうございました!
あとがき
まさかツールの組み合わせで、作図までしてくれるとは思っていなかった……
Doxygenを侮っていました……
せっかくコメントを書くならDoxygenコマンドを書いちゃいましょう!
そして図の出力までやって、わかりやすいドキュメントで、よきコーディングライフ!