Doxygenの使い方

今更ながらDoxygenの使い方をまとめました。


1 Doxygenとは

ソースコードからHTMLドキュメントを作成するツールです。Doxygenの作法に則ったソースコードにコメントを書くことでHTMLドキュメントに反映されます。JavaDoc形式のコメントもサポートしています。

APIドキュメントとソースコードを一致させるのに苦労している場合は是非導入すべきです。多くのオープンソースでも採用されています。よそから持ってきたソースコードを読む際にも有用です。

2 コメントの例

関数のコメントは以下のようになります。

/**
 * Comment for foo function.
 * @param value Comment for value.
 * @return Comment for return value.
 */
bool foo(int value)

出力されるHTMLは以下のようになります。

0001_HTML.png

コメントの形式の雛形を出力するツールを導入すると良いでしょう。emacsならばDoxymacsがあります。

3 Doxyfile

doxygenの設定を記述するファイルです。最低限の変更が必要なのは以下の3つです。

INPUT ソースコードのディレクトリとファイル
RECURSIVE ソースコードを再帰的に見つける
OUTPUT_DIRECTORY doxygenの生成物を出力するディレクトリ
EXCLUDE 除去するディレクトリとファイル

INPUTでディレクトリ全体を指定してから、EXCLUDEでソースコードを除去するのも良いでしょう。INPUTやEXCLUDEは+=で複数行に渡り設定することができます。

EXCLUDE = <directory>
EXCLUDE += <sourcecode>

3.1 doxygen -gで作成

必要最低限の雛形が作成されます。以下はカレントディレクトリ配下のソースコードを全て含める場合の例です。

$ doxygen -g
$ sed -i -e 's/^INPUT *= */INPUT = ./g' \
 -e 's/^RECURSIVE *= *NO/RECURSIVE = YES/g' \
 -e 's/^OUTPUT_DIRECTORY *= */OUTPUT_DIRECTORY = doxygen/g' Doxyfile
$ doxygen

3.2 DoxyWizardで作成

GUIのガイドに従ってDoxyfileを作成するツールです。

0002_Doxywizard.png

OSXの場合はHomebrewでインストールすると良いでしょう。

$ brew install doxygen --with-doxywizard

Ubuntu 14.04の場合はaptでdoxywizardパッケージをインストールできます。

$ sudo apt-get install -y doxygen-gui

4 Warningをエラーとして扱う

オプションがあれば良いのですが、どうもないらしいので、Warningメッセージがあった場合はエラーとして扱うラッパースクリプトを用意します。

DoxygenのWarningメッセージは標準エラー出力に出力されるため、標準エラー出力をファイル保存しておき、保存されたファイルをWarningメッセージでgrepします。

#!/bin/sh

touch doxygen.log
doxygen 2> doxygen.log
grep " warning: " doxygen.log
if [ $? -eq 0 ]; then
  exit 1
fi
exit 0

このスクリプトをMakefile等で呼び出すようにしておけば、makeの延長でエラーとなります。Doxygenコメントがないコミットをなくすことができるでしょう。