256bitの殺人メニュー

インフラエンジニアだったソリューションアーキテクトなくわののブログ。こちらのBlogは個人の意見となっていて会社とは全く関係ありません。お約束です。[twitter:@kuwa_tw]めんどくさがりが重い腰を上げて何かをアウトプットすることにどれほどの意味があるのかを試してみたいブログでもある。

doxygen と graphviz でクラス図を出してみる

はい、おつカレー様です。
夏はカレーとビールですね。


最近bottleのソースコードリーディング的な事をやっていたりするのですが、これをやっている際にdoxygenでのクラス図生成が便利だったので、メモリん。
環境はCentOS6系です。

doxygengraphvizのインストール

yum。楽チン。

# yum install doxygen graphviz

bottleのソースも落としておきましょう。

$ mkdir bottle bottle_doxygen
$ wget  http://bottlepy.org/bottle.py -O ./bottle/bottle.py

設定ファイルのテンプレート生成

次にDoxygenの設定ファイルのテンプレートを出力しましょう。

$ doxygen -g Doxyfile
$ cat Doxyfile  | grep -v ^# | grep -v ^$
DOXYFILE_ENCODING      = UTF-8
PROJECT_NAME           =
PROJECT_NUMBER         =
OUTPUT_DIRECTORY       =
CREATE_SUBDIRS         = NO
OUTPUT_LANGUAGE        = English
BRIEF_MEMBER_DESC      = YES
REPEAT_BRIEF           = YES
ABBREVIATE_BRIEF       =
ALWAYS_DETAILED_SEC    = NO
INLINE_INHERITED_MEMB  = NO
FULL_PATH_NAMES        = YES
STRIP_FROM_PATH        =
STRIP_FROM_INC_PATH    =
SHORT_NAMES            = NO
(snip)

設定ファイル変更

今のディレクトリ構成にしたがって変更。

$ diff Doxyfile.org Doxyfile
28c28
< PROJECT_NAME           =
---
> PROJECT_NAME           = bottle
41c41
< OUTPUT_DIRECTORY       =
---
> OUTPUT_DIRECTORY       = ./bottle_doxygen/
571c571
< INPUT                  =
---
> INPUT                  = ./bottle/
991c991
< GENERATE_LATEX         = YES
---
> GENERATE_LATEX         = NO
1360c1360
< HAVE_DOT               = NO
---
> HAVE_DOT               = YES
項目名 意味
PROJECT_NAME プロジェクト名(適当に)
OUTPUT_DIRECTORY HTML出力先を指定
INPUT ソースディレクトリを指定
GENERATE_LATEX LATEX出力が要らないので。いるならYESのまま。
HAVE_DOT クラス図を出力する

doxygen実行

これだけです。デフォルトがDoxyfileになってるんで、この場合は $ doxygen だけでもOKです。

$ doxygen Doxyfile

ブラウザからみたい

場合はApacheとかの公開ディレクトリに置きましょう。(すいませんw適当w)

$ /bin/cp -rf bottle_doxygen/html/ /var/www/doxygen/bottle/

こんな感じででます。

いじょ。