Doxygenでドキュメントを自動で生成してみる。
またまた、Twitterで・・・・
ついこの間まで使ってました。Java1.4案件でしたが。 RT @yusuke 詳細仕様/設計なんてなくて、納品時にJ仕様書工房ってソフトでソースから分厚い設計書を作って納品したことある - http://t.co/xbijtjYeY6
— ざきやま@IDEA試用中 (@z_a_ki3) 2015, 3月 16
以前の現場で使っていた、ソースコードからドキュメント類を自動生成する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...
ドキュメント
こんな感じにできました。