lisz-works

技術と興味の集合体

簡単に自動で「図のあるドキュメント」!通常+αの設定でデキるDoxygen×graphvizドキュメント作成

【スポンサーリンク】

Doxygen

コードからドキュメントを自動生成してくれる、力強い味方「Doxygen」!

コイツに「graphviz」というツールを組み合わせると……

ドキュメントに図が勝手に!?

こんな便利なことがあっていいのか!?

ということで、やり方をまとめてみました!

どんなものが作れるの?

こんなものや

図-1

こんなものです。

図-2

Doxygenについて

コチラを参照。

www.lisz-works.com

graphvizのインストール

このページにアクセスして、手順3へ!

Windows Packages

トップページから見る場合は、こちらからアクセスして、手順を追ってください!

  1. 上部メニューからDownload
  2. Windows欄の「Stable x.xx Windows install packages」
  3. 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ファイルの作成

こちらでも書きましたが

www.lisz-works.com

出力したいフォルダをコマンドプロンプトで開いて

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

こういうのや……

図-1

こういうのが出ていたら……

図-2

大成功です!!

参考

こちらを参考にしました。ありがとうございました!

ylgbk.hatenablog.com

m12i.hatenablog.com

Graphviz をインストールする

qiita.com

あとがき

まさかツールの組み合わせで、作図までしてくれるとは思っていなかった……

Doxygenを侮っていました……

せっかくコメントを書くならDoxygenコマンドを書いちゃいましょう!

そして図の出力までやって、わかりやすいドキュメントで、よきコーディングライフ!