おれろぐ #z_a_ki3

(・∀・) オイ!

Doxygenでドキュメントを自動で生成してみる。

またまた、Twitterで・・・・

以前の現場で使っていた、ソースコードからドキュメント類を自動生成するF社製のツールについて
話題が挙がっていて、今、この手のドキュメント自動生成ツールはどんなのがあるんだろうと
調べたらDoxygenなんてものがあったので、インストール〜とりあえず生成までしてみました。

前提条件

インストール

brewでさくさくインストールします。graphvizは図を生成するのに必要です。

$ brew install doxygen
==> Downloading https://homebrew.bintray.com/bottles/doxygen-1.8.9.1.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring doxygen-1.8.9.1.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/doxygen/1.8.9.1: 5 files,  15M
$
$ brew install graphviz
==> Installing graphviz dependency: libpng
==> Downloading https://homebrew.bintray.com/bottles/libpng-1.6.16.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring libpng-1.6.16.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/libpng/1.6.16: 17 files, 1.3M
==> Installing graphviz
==> Downloading https://homebrew.bintray.com/bottles/graphviz-2.38.0.yosemite.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring graphviz-2.38.0.yosemite.bottle.1.tar.gz
🍺  /usr/local/Cellar/graphviz/2.38.0: 469 files,  68M

サンプルの準備

皆さんおなじみのTwitter4Jで見てみます。

$ mkdir Doxygen
$ cd Doxygen
$ wget http://twitter4j.org/archive/twitter4j-4.0.2.zip
$ unzip twitter4j-4.0.2.zip

設定ファイル生成

ドキュメントを生成するソースのルートで doxygen -g を実行します。
カレントディレクトリに Doxyfile ファイルが出来ます。

doxygen -g [filename] でファイル名を指定できます。

$ doxygen -g


Configuration file `Doxyfile' created.

Now edit the configuration file and enter

  doxygen Doxyfile

to generate the documentation for your project

設定ファイルの変更

設定項目は非常に多いですが、とりあえず RECURSIVE = YES にすれば
ディレクトリ内を再帰的に検索してドキュメント化してくれます。

# The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well.
# The default value is: NO.

#RECURSIVE              = NO
RECURSIVE              = YES

ドキュメントの生成

doxygenコマンドでドキュメントが生成されます。
設定ファイル等で指定していなければカレントディレクトリにhtmlディレクトリが
作成され、自動生成されたドキュメント類が格納されます。

$ doxygen
Searching for include files...
Searching for example files...
Searching for images...
Searching for dot files...
Searching for msc files...
      〜略〜
Generating file index...
Generating file member index...
Generating example index...
finalizing index lists...
writing tag file...
lookup cache used 0/65536 hits=0 misses=0
finished...

ドキュメント

こんな感じにできました。

f:id:z_a_ki3:20150316235753p:plain

f:id:z_a_ki3:20150316235815p:plain

f:id:z_a_ki3:20150317000902p:plain

参考

Doxygen: Main Page
Doxygen(日本語)