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
输出源浏览器现在将只显示不以//
.
自然地,创建一个过滤脚本来丢弃所有 C 风格的注释,除了那些与 doxygen 相关的注释,这比上面显示的要复杂得多。