2004/08/30(月)doxygen + Delphi

for doxygen 1.3.8

Delphi(Object Pascal)のソースをdoxygenでドキュメント化させてみようと思い立つ。
doxygenはデフォルトではpascalのソースに対応していないが、pas2doxというツールがある。こいつはpascalのソースをCっぽいソースに変換してくれる。あとはdoxygenに渡すだけである。

ところが、単体のファイルをコマンドラインでちまちまやるとできるのに、doxygenに一括で処理させると上手くいかなかった。設定ファイルの書き方に注意が要る。

以下、上手くいったときのdoxygenファイル抜粋。
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT                  = d:\renamer
FILE_PATTERNS          = *.c \
                         *.cc \
                         *.cxx \
                         *.cpp \
                         *.c++ \
                         *.java \
                         *.ii \
                         *.ixx \
                         *.ipp \
                         *.i++ \
                         *.inl \
                         *.h \
                         *.hh \
                         *.hxx \
                         *.hpp \
                         *.h++ \
                         *.idl \
                         *.odl \
                         *.cs \
                         *.php \
                         *.php3 \
                         *.inc \
                         *.m \
                         *.mm \
                         *.pas
RECURSIVE              = YES
EXCLUDE                = 
EXCLUDE_SYMLINKS       = NO
EXCLUDE_PATTERNS       = 
EXAMPLE_PATH           = 
EXAMPLE_PATTERNS       = *
EXAMPLE_RECURSIVE      = NO
IMAGE_PATH             = 
INPUT_FILTER           = c:\online\doxygen\bin\pas2dox.exe
FILTER_PATTERNS        = 
FILTER_SOURCE_FILES    = YES
FILE_PATTERNSに*.pasを追加し、FILTER_SOURCE_FILES = YESにする。

注意点は、INPUT_FILTER, FILTER_PATTERNSに関して。

・INPUT_FILTER
コマンドパスを書くときに、""(ダブルクォーテーション),クォーテーション無しはOK。''(シングルクォーテーション)は×。

コマンドはフルパスで書く必要がある。(doxygenのフォルダ)/binに置いても、フルパスでないとダメなようだ。エラーメッセージ出せよ……

・FILTER_PATTERNS
新しいオプションのようだ。*.pas、"*.pas"等指定してもうまくいかない。
d:/renamer/FileNameAnalyze.pas:23: Warning: Found ';' while parsing initializer list! (doxygen could be confused by a macro call without semicolon)
というエラーが延々出てしまう。軽く調べてみたが、書き方のサンプルも見つからない。機能していないのだろうか? 今のところ、空白にしておくのが正解のようだ。
OK キャンセル 確認 その他