在Doxygen中,如果我有以下代码结构:
foo/__init__.py
foo/bar.py
foo/bar.py
包含:
def meh():
"""@brief Some cool feature.
More details...
"""
print "Hello, world!"
和foo/__init__.py
包含:
# Publicly expose "foo.bar.meh" as "foo.meh".
from foo.bar import meh
在此方案中,meh
仅限内部foo.bar
用于结构
代码布局原因,应在公共API中显示为foo.meh
。
此方案的一个示例是标准库中的os.path
,它公开公开来自许多特定于操作系统的实现模块之一的符号(例如,它也恰好以os.path.nt
形式提供)。
当我在此源代码树上运行Doxygen时,我将meh
作为foo.bar.meh
并且我无法将其作为foo.meh
。
我尝试使用@fn
命令明确限定meh
,但后来我得到了一些奇怪的警告,而且函数不在输出中。对课程使用@class
创建了一种情况,我有两个Meh
类,一个有简短的&没有文档,而另一个有方法和其他成员。据推测,Doxygen将@class
指令解释为另一个模块中类的文档,并不将文档与特殊注释块后面的类相关联。
如何使用Doxygen将内部模块符号公开为公共包符号?
为了记录,这是一个非常大的混合C ++和Python代码库,带有大量Doxygen注释,我对转换为reStrcuturedText或Sphinx并不感兴趣(至少在短期内)。