1: 2010-08-05 (木) 00:39:13 yuji | 現: 2020-12-26 (土) 16:07:41 yuji Attached file: doxyfile, Deleted an attach file: doxyfile at 2012-11-21 (水) 13:40:32, Attached file: Doxyfile, Deleted an attach file: Doxyfile at 2012-11-21 (水) 13:40:53, Attached file: サマリーと詳細.jpg |
||
---|---|---|---|
Line 29: | Line 29: | ||
PATHを通しておく必要があるので,短めのディレクトリのほうが良い。 | PATHを通しておく必要があるので,短めのディレクトリのほうが良い。 | ||
- | **doxygenの設定ファイル「Doxyfile」での設定の仕方 [#c7197462] | + | **doxygenの設定ファイル「Doxyfile」での設定 [#c7197462] |
- | Doxygenを実行する時に,動作を設定するためのdoxyfileをそのプロジェクト・ディレクトリに用意しておく。サンプルdoxyfile: &ref(doxyfile); | + | Doxygenを実行する時に,動作を設定するためのdoxyfileをそのプロジェクト・ディレクトリに用意しておく。サンプルDoxyfile: &ref(Doxyfile); ~ |
+ | 設定ファイルはDoxywizardっていうGUIツールで作成できる。一度作るとほとんど変更することはないんでエディターで編集して使っている。最初はDoxywizardを使ったほうがいいと思う。実行は,スタートメニューまたはコマンドプロンプト上でdoxywizardを実行すれば,そのディレクトリに作成される。 | ||
+ | |Wizard|簡易設定。ウィザード形式で Project ~ Diagrams まで設定してゆく。| | ||
+ | |Expert|高度な設定。Wizard より細かな設定をおこなえる。| | ||
+ | |Run|ドキュメント生成などを実行できる| | ||
+ | |||
+ | 設定はWizardタブを開いて行う。~ | ||
+ | ''Project'' | ||
+ | |Project name|プロジェクト名の設定。ドキュメントのタイトルなど,いろいろなところで使われる。| | ||
+ | |Project synopsis|プロジェクト概要。出力形式がHTMLの場合,タイトル直下に説明文として添えられる。| | ||
+ | |Project version or id|プロジェクトのバージョン情報,または識別子。出力形式がHTMLの場合,タイトル右側に添えられる。| | ||
+ | |Project logo|プロジェクトのロゴとなる画像ファイル。出力形式がHTMLの場合,タイトル左側に画像として挿入される。| | ||
+ | |Select code directory|解析対象とするソースコードを格納したフォルダの場所。相対パスも指定できる。| | ||
+ | |Scan recursively|ソースコードのフォルダが階層化されており,それらも解析する場合はチェックする。| | ||
+ | |Destination directory|ドキュメントの出力先。未指定なら作業フォルダが選ばれる。| | ||
+ | |||
+ | ''Mode'' | ||
+ | |Select the desired extraction mode|解析対象。Documented entities onlyはドキュメント化されたファイルのみ。All Entitiesならすべて。Include cross-referencedはソース間で相互参照がある場合,それらも含む。| | ||
+ | |Select programming language to optimize the result for|最適化するプログラミング言語。プロジェクトのメイン言語を選ぶ。| | ||
+ | |||
+ | ''Output'' | ||
+ | |HTML|plain HTML|標準のHTMLを出力する。| | ||
+ | ||with navigation panel|ページの左側にナビゲーションパネルを持つHTMLを出力する。| | ||
+ | ||prepare for compressed HTML(.chm)|MS Compiled HTML Help(CHM)形式で出力する。| | ||
+ | ||With search function|PHPの稼働しているWeb サーバーに配置したとき,検索機能を有効にする。| | ||
+ | ||Change color…|HTML出力する際の全体的な色を変更できる。既定のデザインを踏襲しつつ,色のみを調整するようになっている。| | ||
+ | |LaTeX|as intermediate format for hyperlinked PDF|LaTeX用の中間形式としてハイパーリンク形式のPDFを出力する。| | ||
+ | ||as intermediate format for PDF|LaTeX用の中間形式として単一のPDFを出力する。| | ||
+ | ||as intermediate format for PostScript|LaTeX用の中間形式としてポストスクリプトファイルを出力する。| | ||
+ | |Man pages||UNIXのman(マニュアル)コマンド用ファイルを出力する。| | ||
+ | |Rich Text Format(RTF)||リッチテキスト形式のファイルを出力する。| | ||
+ | |XML||XML 形式のファイルを出力する。独自の出力形式が欲しい場合,このファイルから変換するのがいいと思う。| | ||
+ | |||
+ | ''Diagrams'' | ||
+ | |Diagram to generate|No diagrams|ダイアグラムを出力しない。| | ||
+ | ||Use built-in class diagram generator|Doxygenに内蔵されてるジェネレータを利用してダイアグラムを出力する。| | ||
+ | ||Use dot tool from the GraphViz package to generate|GraphVizを利用してダイアグラムを出力する。詳細設定は Dot graphs to generate 欄でおこなう。| | ||
+ | |Dot graphs to generate|Class diagrams|クラス図を作成する。| | ||
+ | ||Collaboration diagrams|コラボレーション図を作成する。| | ||
+ | ||Include dependency graphs|インクルード依存グラフを作成する。| | ||
+ | ||Include by dependency graphs|インクルード依存グラフを作成する。ヘッダの間接インクルードによって生じた依存関係も含むみたい。| | ||
+ | ||Call graphs|呼び出しグラフを作成する。これをチェックすると関数やメソッドの呼び出し解析が実行されるので,ドキュメント生成の時間がとても長くなる。| | ||
+ | ||Called by graphs|間接的な呼び出しフラグを作成する。この設定もCall graphs同様,チェックすると時間がかかる。| | ||
+ | |||
+ | ''Expert''タブ | ||
+ | |Doxyfile Encodeing|設定ファイルDoxyfileのコードを設定する。''UTF-8''にしておく。| | ||
+ | |OUTPUT_LANGUAGE|日本語で出力させるために,''Japanese''に設定する。| | ||
+ | |OPTIMIZE_OUTPUT_FOR_C|Cソースのみの場合は,YESにしておく。| | ||
+ | |INPUT_ENCODING|入力ファイルの言語ローケールの設定。S-JISの場合は「''CP932''」にする。ソースコードに合わせる。| | ||
+ | |EXTRACT_PRIVATE|''YES''にすると,プライベートメンバーを文書に入れる。| | ||
+ | |EXTRACT_LOCAL_CLASSES|''YES''で,ローカルクラスを文書に入れる。| | ||
+ | |SHOW_INCLUDE_FILES|''YES''で,インクルードファイルのリストを文書に入れる。| | ||
+ | |||
+ | すべての設定が完了したら,Runタブを開き,Run doxygenボタンを押す。しばらく待つとドキュメント作成が完了する。 | ||
+ | |||
+ | ''CHMファイル作成'' | ||
+ | |GENERATE_HTMLHELP|チェックすることで,CHMファイルの出力が有効になる。| | ||
+ | |CHM_FILE|出力するファイル名。プロジェクト名.chm とするのが分かりやすくてよい。| | ||
+ | |HHC_LOCATION|HTML Help Workshopの実行ファイルへのフルパス。直接入れるかファイルダイアログでhhc.exeを開いて設定する。| | ||
+ | |CHM_INDEX_ENCODING|CHMファイルを開いた時,目次タブに表示される項目のテキストエンコーディング。日本語が含まれるなら「''CP932''」を設定する。そうしないと文字化けする。| | ||
DOXYFILE_ENCODING = UTF-8 # SJISの場合は,CP932にする | DOXYFILE_ENCODING = UTF-8 # SJISの場合は,CP932にする | ||
PROJECT_NAME = "XXXXXX PCB Firmware" # 適当に | PROJECT_NAME = "XXXXXX PCB Firmware" # 適当に | ||
Line 44: | Line 104: | ||
*Doxygenでの書き方と主なタグ [#c0b24825] | *Doxygenでの書き方と主なタグ [#c0b24825] | ||
+ | |||
+ | **2種のコメント [#l6533730] | ||
+ | doxygenコメントには,「概要記述」と「詳細記述」の2つのコメントがあります。それぞれの違いは以下のとおり。 | ||
+ | |doxygenコメント|内容|書き方|h | ||
+ | |概要記述(brief description)| 詳細解説およびサマリーに利用されるコメント|主に1行のコメントで記載| | ||
+ | |詳細記述(detailed description)|詳細解説の個所のみで利用されるコメント|複数行のコメントで記載| | ||
+ | どちらもファイルの先頭,対象となる関数,構造体,C++のクラス,メンバ変数,メソッドなどの宣言や定義の前に記述する。 | ||
+ | |||
+ | 図は,doxygenが出力するファイルのコメントの例です。doxygenが出力するドキュメントは,「サマリー」と「詳細説明」に分かれる。サマリーには,概要記述で記載した内容が,詳細説明には概要記述と詳細記述で記載した内容が反映されるみたい。サマリーにも反映させたい内容については,概要記述に書くようにする。 | ||
+ | #ref(サマリーと詳細.jpg) | ||
+ | |||
+ | **書き方 [#ma5192b9] | ||
+ | -サマリーの書き方~ | ||
+ | /// サマリーだよ | ||
+ | とか, | ||
+ | //! サマリーだよ | ||
+ | ''注意:サマリーを複数行に書いてしまうと,詳細説明になってしまう。'' | ||
+ | -詳細説明の書き方 | ||
+ | QTスタイル | ||
+ | /* | ||
+ | * 詳細記述 | ||
+ | * 詳細記述 | ||
+ | */ | ||
+ | |||
+ | /* | ||
+ | 詳細記述 | ||
+ | 詳細記述 | ||
+ | */ | ||
+ | JavaDocスタイル~ | ||
+ | /** | ||
+ | * 詳細記述 | ||
+ | * 詳細記述 | ||
+ | */ | ||
+ | |||
+ | /** 詳細記述 */ | ||
+ | -詳細説明の中でサマリーを記述しちゃう方法~ | ||
+ | 詳細説明中にサマリーを書きたい場合は,「''@brief''」というセクションコマンドを利用して記述する。~ | ||
+ | ''@brief''を利用すると,空のコメント行までがサマリーとして扱われる。~ | ||
+ | /*! | ||
+ | * 詳細説明 | ||
+ | * @brief サマリー説明 | ||
+ | * 概要説明 | ||
+ | * | ||
+ | * 詳細説明 | ||
+ | */ | ||
+ | |||
+ | /*! | ||
+ | @brief 文字列の文字数を返す | ||
+ | |||
+ | @param [in] s 文字列 | ||
+ | @return 文字数 | ||
+ | */ | ||
+ | |||
+ | /*! | ||
+ | @brief 文字列での文字の位置を返す | ||
+ | |||
+ | @param [in] s 文字列 | ||
+ | @retval 0 見つからなかった | ||
+ | @retval 0以外 文字の位置 | ||
+ | */ | ||
+ | -補足説明を付けたい変数や関数の定義前に通常コメントを書く~ | ||
+ | 補足説明を付けたい変数や関数の定義前に通常コメントを書きますが,enum型や変数などの場合は定義の後にコメントを付けるケースもある。 | ||
+ | doxygenのコメントは,このような後方コメントにも対応しており,以下のように記述することで前の宣言を修飾出来る。 | ||
+ | 変数定義 /*!< 詳細説明 */ | ||
+ | とか | ||
+ | 変数定義 /*!< 詳細説明 */ | ||
+ | や, | ||
+ | 変数定義 ///< サマリーだよ | ||
+ | int globBase = 10; ///< 足し算用のパラメータ | ||
+ | とか | ||
+ | 変数定義 //!< サマリーだよ | ||
+ | とかにします。 | ||
+ | |||
+ | **文章の飾り付けとセクションコマンド [#xf412808] | ||
+ | コメントの中では"スペシャルコマンド"や"HTMLコマンド"と呼ぶ書き方で細かな指定が可能。第す。代表的なものを以下に上げてみる。 | ||
+ | |書き方|説明|h | ||
+ | |@bほげほげ|''ほげほげ''| | ||
+ | |<b>ほげほげ</b>|''ほげほげ''| | ||
+ | |@emほげほげ|'''ほげほげ'''| | ||
+ | |<em>ほげほげ</em>|'''ほげほげ'''| | ||
+ | |@code~@endcode|コードブロック| | ||
+ | |@verbatim~@endverbatim|直接表記| | ||
-@および\で始まる語は,doxygenコマンドとして解釈しようとする。コマンドにしない場合は,'\n'や'\0'の様にquoteする。~ | -@および\で始まる語は,doxygenコマンドとして解釈しようとする。コマンドにしない場合は,'\n'や'\0'の様にquoteする。~ | ||
<>%もHTMLで特殊な意味を持ちますので,エスケープする必要がある。コマンドや特殊文字を含む文を書く場合には,特殊文字を解釈しないブロックを作るコマンドがある。 | <>%もHTMLで特殊な意味を持ちますので,エスケープする必要がある。コマンドや特殊文字を含む文を書く場合には,特殊文字を解釈しないブロックを作るコマンドがある。 | ||
Line 52: | Line 194: | ||
-単に改行しても出力されないので,ソース上の整形で単に改行するのは問題ない。 | -単に改行しても出力されないので,ソース上の整形で単に改行するのは問題ない。 | ||
- | |全般||h | + | |セクションコマンド|説明|h |
|@mainpage|doxygenで作成されるドキュメントの最初のページの説明文になる。| | |@mainpage|doxygenで作成されるドキュメントの最初のページの説明文になる。| | ||
|@author|開発者名を記載する。| | |@author|開発者名を記載する。| | ||
Line 75: | Line 217: | ||
/** | /** | ||
* @brief etcクラスはその他のデータを表します。 | * @brief etcクラスはその他のデータを表します。 | ||
+ | * | ||
* @author yuji | * @author yuji | ||
* @see labeledETC | * @see labeledETC | ||
Line 80: | Line 223: | ||
*/ | */ | ||
class etc{ | class etc{ | ||
+ | |||
/** | /** | ||
* その他のデータを表す | * その他のデータを表す | ||
Line 87: | Line 230: | ||
*/ | */ | ||
var $name; | var $name; | ||
+ | |||
/** | /** | ||
* 名前を設定 | * 名前を設定 | ||
Line 96: | Line 239: | ||
$this->name = $name; | $this->name = $name; | ||
} | } | ||
+ | |||
/** | /** | ||
* 名前の取得 | * 名前の取得 |