doxygenとPlantUMLの組み合わせ

■doxygenとPlantUMLの組み合わせ
doxygen のドキュメント生成ツールと PluntUML の作図ツールを組み合わせてみました。
言葉だけでは理解困難なケースや誤解を招くため、doxygen生成ドキュメントに図を取り入れよう。
その方法を簡単に記載する。
(1)まずは、doxygenのコンフィグファイルを生成してカスタマイズする。
(2)次にドキュメント生成元のソースファイルにPlantUMLの記載を入れる。
(3)最後にPlantUMLによる図の.pngファイルを生成する。

◆Doxyfileコンフィグファイル生成
doxygen-1.8.12> doxygen.exe -g

◆Doxyfileコンフィグファイル設定例
・関連する設定項目
DOXYFILE_ENCODING = CP932   #Doxyfileの文字コード指定:拡張SHIFT_JIS
OUTPUT_DIRECTORY = ./out_dir  #Doxygen出力フォルダ指定
INPUT = ./in_dir          #(入力)ソースファイルのフォルダ指定
INPUT_ENCODING = CP932    #(入力)ソースファイルの文字コード指定
HAVE_DOT = YES         #graphvizを使う場合 YES
DOT_PATH = ../PlantUML/graphviz-2.38/bin
PLANTUML_JAR_PATH = ../PlantUML

・その他設定項目
PROJECT_NAME = “NewProject”
PROJECT_NUMBER = Rev 0.10
PROJECT_BRIEF = プロジェクトの概要をココに記載する
BRIEF_MEMBER_DESC = NO
REPEAT_BRIEF = NO
STRIP_FROM_PATH = in_dir
STRIP_FROM_INC_PATH = in_dir
OPTIMIZE_OUTPUT_FOR_C = YES
IDL_PROPERTY_SUPPORT = NO
GENERATE_LATEX = NO

◆doxygenの.batファイルの内容
—————————
echo *** JREパス ***
set PATH=%PATH%;D:\User\070_Document\PlantUML\jre7\jre1.7.0\bin
echo *** Graphviz起動 ***
set GRAPHVIZ_DOT=D:\User\070_Document\PlantUML\graphviz-2.38\bin\dot.exe
echo *** doxygen起動 ***
doxygen.exe
—————————

◆ソースファイルsource.cの記載例
・source.cをin_dirフォルダ下に置き、doxygenを実行する
※この時点ではPlantUMLが出力するXXXX.pngは生成されない(PlantUMLは.batで動作させるため.pngが生成されない方が利便性が良い)
—————————
/**
* @brief 大分類ステートメントテーブル
*
* 大分類の状態テーブルである
* 大分類を細分化した状態は中分類の状態テーブルを参照の事
* @note
* @startuml XXXX.png
database LargeStateTable as ”
LARGE_S1

LARGE_S2

LARGE_S3

LARGE_S4

LARGE_STATE_MAX

* @enduml
*/
—————————

・doxygenで出力されたout_dir\htmlフォルダ下の.htmlファイル抜粋
 @startuml~@endumlの部分が、img src=”XXXX.png” に成っているから、
カレントフォルダにXXXX.pngが有れば(生成されれば)、図がドキュメントに表示される。

◆PlantUMLの.batファイルの内容
・PlantUML.batを実行すると、XXXX.puが読み込まれ XXXX.pngが生成される
文字コードは、doxygenにより UTF-8で出力されてるため -charset UTF-8を指定。
(javeへのPATHが通っていない場合、javaへの相対パスを記載した例)
—————————
echo *** Graphviz起動 ***
set GRAPHVIZ_DOT=D:\User\070_Document\PlantUML\graphviz-2.38\bin\dot.exe
echo *** PlantUML起動 ***
PlantUML\jre7\jre1.7.0\bin\java -jar PlantUML\plantuml.jar -v -charset UTF-8 doxygen-1.8.12\out_dir\html\*.pu
—————————