|
1: 2010-08-05 (木) 00:39:13 yuji |
| + | *Doxygenって [#oa22b027] |
| + | プログラムのソースコードを解析して,ドキュメントを作ってくれる便利なツール~ |
| + | ダウンロードは,http://www.doxygen.jp/から。 |
| | | |
| + | Doxygenには,次のような特徴がある。 |
| + | -文書化されたソースファイルのセットから,オンライン・ドキュメント・ブラウザ (HTML形式) やオフラインのリファレンス・マニュアル (LATEX形式) を生成することが出来る。RTF (MS-Word),PostScript,ハイパーリンクPDF,圧縮HTML,Unix manページ形式,WindowsのHTML HELPの出力もサポートされている。ドキュメントは,ソースから直接抽出される。 |
| + | -文書化されていないソースファイルから,コードの構造を抽出するように設定することができます。 これにより,大規模で分散化されたソースの中を探ることが多少容易になる。様々な要素間の関係が,内包・依存図,継承図,およびコラボレーション図により視覚化することが出来る。 |
| + | -通常のドキュメントを作成することも出来る。(Doxygenのサイト) |
| + | |
| + | **あると便利なツール [#z8507943] |
| + | -Graphviz~ |
| + | Doxygenは,クラスダイアグラムを生成する機能を持っているのだが,そこでGraphvizを利用する。DoxygenとGraphvizを使えば,クラス相関図を自動的に作ってくれる。~ |
| + | Doxygenをインストールする前に,これを入れておいたほうが良い。~ |
| + | http://www.graphviz.org/ の[[Download:http://www.graphviz.org/Download.php]]にある,Stable and development Windows Install packages(Windowsの場合)を選ぶ。(現在の安定版は, graphviz-2.28.0.msi)~ |
| + | ダウンロードしたファイルをクリックしてインストールする。 |
| + | -HTML Help Workshop~ |
| + | MS製の,Doxygenが出力するドキュメントから,WindowsのHTML HELP(.chm)に変換するツール。~ |
| + | ここの[[MSのサイト>http://www.microsoft.com/downloads/en/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en]]からダウンロード出来る。これがあれば自動的にWindows Helpファイルを作成できるようになる。 |
| + | --Doxygenでchmファイルを作る時,追加する設定 |
| + | GENERATE_HTMLHELP = YES |
| + | CHM_FILE = ../xxxxx.chm |
| + | HHC_LOCATION = "\"C:\Program Files\HTML Help Workshop\hhc.exe\"" |
| + | GENERATE_CHI = YES |
| + | CHM_INDEX_ENCODING = CP932 |
| + | |
| + | **Doxygenのインストール [#f87012af] |
| + | Doxygenのサイトの右側にある[[Downloadするところ:http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc]]から,Windows用インストーラーをダウンロードする。(doxygen-1.8.2-setup.exe)~ |
| + | これもクリックしてインストールする。~ |
| + | PATHを通しておく必要があるので,短めのディレクトリのほうが良い。 |
| + | |
| + | **doxygenの設定ファイル「Doxyfile」での設定の仕方 [#c7197462] |
| + | Doxygenを実行する時に,動作を設定するためのdoxyfileをそのプロジェクト・ディレクトリに用意しておく。サンプルdoxyfile: &ref(doxyfile); |
| + | DOXYFILE_ENCODING = UTF-8 # SJISの場合は,CP932にする |
| + | PROJECT_NAME = "XXXXXX PCB Firmware" # 適当に |
| + | PROJECT_NUMBER = 1.1.0 # 適当に |
| + | OUTPUT_LANGUAGE = Japanese # やっぱり日本語で |
| + | HAVE_DOT = YES # Graphvizで図を入れる |
| + | OUTPUT_DIRECTORY = # 出力ディレクトリ(デフォルトはHTML) |
| + | TAB_SIZE = 8 # TAB幅 |
| + | FILE_PATTERNS = *.cpp *.c *.h # 対象ファイルを指定 |
| + | EXTRACT_PRIVATE = YES # privateメンバも出力するとき |
| + | |
| + | その他,いっぱいオプションがある。''doxygen -g''とするとコメント付きのDoxyfileを作成するんでそれを見て設定する。 |
| + | |
| + | *Doxygenでの書き方と主なタグ [#c0b24825] |
| + | -@および\で始まる語は,doxygenコマンドとして解釈しようとする。コマンドにしない場合は,'\n'や'\0'の様にquoteする。~ |
| + | <>%もHTMLで特殊な意味を持ちますので,エスケープする必要がある。コマンドや特殊文字を含む文を書く場合には,特殊文字を解釈しないブロックを作るコマンドがある。 |
| + | -空白行は,ブロック終了コマンドの無いブロックを終了させるという意味がある。 |
| + | -コメントされている識別子を文中に書くと,自動でリンクが張られる。 |
| + | -コマンドには引数がある場合がある。コマンドの後ろに何か記述している場合と,コマンドだけの行は出力結果が違うことがある。 |
| + | -HTMLタグを使用すると出力に反映されるけど,プログラムのソースとしては見づらくなるから,なるべく使わないようにする。 |
| + | -単に改行しても出力されないので,ソース上の整形で単に改行するのは問題ない。 |
| + | |
| + | |全般||h |
| + | |@mainpage|doxygenで作成されるドキュメントの最初のページの説明文になる。| |
| + | |@author|開発者名を記載する。| |
| + | |@deprecated|廃止されたクラスやメソッドであることを,記載する。| |
| + | |@param|関数の引数名と引数の概要(引数の数だけ記述)なんかを記載する。| |
| + | |@return|戻り値を記載する(戻り値がvoidの時は不要)| |
| + | |@retval|戻り値を記載する(戻り値がいくつかの値をとる場合)| |
| + | |@arg / @li|箇条書き。- (インデントした行頭ハイフン) の場合,全て番号無しリストとして出力される。引数のリストとして@arg,文中の箇条書きとして - がいいかも。-だけはインデントの深さを変えるとネストになる。インデントを合わせて.だけの行を置くと,リストを終了しパラグラフを続けることが出来ます。 -# とすると順序付きリストになります。| |
| + | |@par|段落の開始。引数は,パラグラフタイトルになる。タイトルが無しの時はコマンドのみの改行にする。| |
| + | |@see / @sa|参照すべき箇所や関連するクラスなんかを記載する。文中にも使える。| |
| + | |@code / @endcode|コードブロックの指定。この間のテキストはコマンドが全て無効になって,そのまま出力される。コードサンプルなんかを書く時に使う。@verbatin~@endverbatimもほぼ同じだけど,これだとリンクが張られます。| |
| + | |@since|導入された日付なんかを記載する| |
| + | |@throw|関数なんかの例外を記載する| |
| + | |@version|バージョンを記載する| |
| + | |@note|覚書のような,メモなんかを記載する| |
| + | |@attention|注意書き。現在の使用時なんかでの注意点を記載する| |
| + | |@warnning|警告書き。開発者なんかに,動作仕様からは判らない重要な注意事項なんかを記載する| |
| + | |@date|日付をつけて履歴なんかを記載するときに使う。複数書いても連結されてしまう。| |
| + | |@bug|バグ情報。リストとして一覧が出るので,@dateの代りに履歴として使うという使い方もある。複数書いた場合にパラグラフ結合されないという違いがある。| |
| + | |
| + | -PHPだとこんな感じ~ |
| + | /** |
| + | * @brief etcクラスはその他のデータを表します。 |
| + | * @author yuji |
| + | * @see labeledETC |
| + | * @date 2007/04/09 |
| + | */ |
| + | class etc{ |
| + | |
| + | /** |
| + | * その他のデータを表す |
| + | * @note private String name |
| + | * @deprecated この値を直接操作することは推奨されません。 |
| + | */ |
| + | var $name; |
| + | |
| + | /** |
| + | * 名前を設定 |
| + | * @param name 名前を指定 |
| + | * @note void setName(String name) |
| + | */ |
| + | function setName($name){ |
| + | $this->name = $name; |
| + | } |
| + | |
| + | /** |
| + | * 名前の取得 |
| + | * @return String |
| + | * @note String getName() |
| + | */ |
| + | function getName(){ |
| + | return $this->name; |
| + | } |
| + | } |