オプションでフィルタースクリプト/プログラムを指定することにより、ソースファイルを前処理することができINPUT_FILTER
ます。次に、 を設定するFILTER_SOURCE_FILE = YES
と、元のソースではなく、フィルター処理されたソース コードがソース ブラウザーで使用されます。
ドキュメントから:
INPUT_FILTER タグを使用して、各入力ファイルをフィルタリングするために doxygen が呼び出すプログラムを指定できます。Doxygen は次のコマンドを (popen() 経由で) 実行することにより、フィルター プログラムを呼び出します。
<filter> <input-file>
ここで、 は INPUT_FILTER タグの値で、 は入力ファイルの名前です。Doxygen は、フィルタ プログラムが標準出力に書き出す出力を使用します。
と
FILTER_SOURCE_FILES タグが YES に設定されている場合、入力フィルタ ( INPUT_FILTER を使用して設定されている場合) は、ブラウズするソース ファイルを生成するために使用される入力ファイルをフィルタリングするためにも使用されます (つまり、SOURCE_BROWSER が YES に設定されている場合)。
大まかな例として、次のソースを使用します ( filter.py
Doxyfile と同じ場所に保存され、実行可能になります):
#!/usr/bin/env python
import fileinput, re
# output all lines that does not start with // (but allow //!)
for line in fileinput.input():
if not re.match(r'\s*//(?![!])', line):
print line,
Doxyfile では、次のように設定します。
INPUT_FILTER = ./filter.py
FILTER_SOURCE_FILE = YES
出力ソース ブラウザには、 で始まらない行のみが表示されるようになりました//
。
当然のことながら、doxygen に関連するものを除くすべての C スタイルのコメントを破棄するフィルター スクリプトを作成することは、上に示したものよりもはるかに複雑になります。