doxygenでgccの__attribute__()を認識させるためにやったこととtips

/** @file foo.c
 *
 * なんとかタイトル
 *
 */
static char __attribute__((__unused__)) *_foo_c = "$Id: ..$";

/**
 * さよなら
 *
 * 無言で終わりを告げる。
 *
 * @param なし
 * @retval なし
 */
void adios() {
    exit(0);
}

なんてソースだと、DoxyFileのデフォルトだとadios()が認識されないし、__attribute__が関数だと認識される。

http://d.hatena.ne.jp/iww/20110915/doxygen

を参照し、

ENABLE_PREPROCESSING   = YES 
MACRO_EXPANSION        = YES 
EXPAND_ONLY_PREDEF     = YES 
PREDEFINED             = __attribute__(x)=

この設定を行って、__attribute__()を認識させない。さらにstatic宣言されている関数がある場合は以下を設定。

EXTRACT_STATIC         = YES

あと、書いてて気づいたのだが、

/**
 * ほげほげ
 *
 *[TAB]$ date
 *[TAB]$ ls -l
 *
 */

int gIndex; /**< 後ろに説明がある場合はこう書く */
char gBuf[16]; /**< 後ろに説明がある場合はこう書く */

とタブを入力するとそこが<pre>として認識してくれるみたい。細いボーダーと薄い青のバックグラウンドで表示されるようだ。さらに、変数の後ろに書いた説明も上記のように書けば認識してくれる。

doxygenの設定説明(日本語)は以下。

http://www.doxygen.jp/config.html