通常我希望Doxygen允许查看记录文件的源代码。但我希望隐藏部分源代码。 我知道如何强制Doxygen不记录某些代码(例如/ cond / endcond),但是当点击“转到这个文件的源代码”时它仍会出现。
我真正想要的是:如果某些东西没有以Doxygen风格进行评论,它将无法显示,不会出现在文档中,也不会出现在“转到此文件的源代码”中。 这应该是函数以及#-defines或其他的情况。
我使用@hideinitializer来隐藏#-define的初始值设定项。这在文档中很有效。但同样,初始化程序仍显示在源代码中。
有人有任何建议吗?
答案 0 :(得分:4)
您可以使用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时)。
作为一个粗略的例子,使用以下源(在与Doxyfile相同的位置保存为filter.py
,并使其成为可执行文件):
#!/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相关的注释将比上面显示的更多。