【发布时间】:2014-06-27 07:28:24
【问题描述】:
我目前正在使用 Doxygen 为 C++ 项目构建文档。
尽管这个工具非常棒,但我几天来一直在寻找有关配置选项的信息。事实上,我默认显示所有类的调用和继承图,并且我成功地删除了所有类的协作图,其中包含以下几行:
CLASS_GRAPH = YES
COLLABORATION_GRAPH = NO
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES
问题是我想删除特定类的继承图,但我找不到任何允许这样做的选项,无论是否在本地。 我搜索了特殊标签以放入我的头文件中以指定配置内容,甚至包括头文件中的 doxygen 配置文件(选项 INCLUDE/INCLUDE_PATH,但只能从配置文件中使用......),但没有似乎对我的目标有好处。 有些人过去已经问过这类问题,但从未得到任何答案(例如this one)。
我知道相反的做法可能是一个选项,这意味着我可以禁用主配置文件中的每种图形,然后使用 \callgraph 标签激活我想要的文件/类中的图形,但它会很烦人,因为我有很多文件需要这些图表。
有什么想法吗? 提前致谢!
最佳
【问题讨论】:
-
目的是什么?据我所知,没有办法做到这一点。如果该类被记录在案,它遵循 Doxygen 配置中设置的规则。如果您正在尝试编写一些非常正式的文档,那么学习 TeX 并使用 LaTeX 输出会很有帮助。然后,您可以编写 TeX 模板并使用脚本提取部分输出并用您的模板替换它们。这工作量太大了,但出于监管原因。
-
@DeniseSkidmore:您好,Denise,目的很简单:默认情况下,我希望我的类有一个调用图。但是对于一些少数类(假设 10 个中的 1 个,以了解比例),我不想要任何调用图。原因是这些类非常大而且很重要,因此在调用图中有很多调用:图太大了,我和我的团队决定为这些特定的类禁用它们。这是原因,如果我说得不好,请告诉我。
-
如果您出于 Doxygen 的性能原因禁用它们,那么我之前的建议将不起作用,它会增加开销,无济于事。您可以设置两个单独的 doxygen 配置,包括不同的源文件和设置,但这很难维护,并且您必须有两个输出位置才能将所有内容编入索引(但即便如此,也要在两个索引上。)
-
@DeniseSkidmore :是的,我明白你在说什么,但实际上这更像是一个“视觉友好”的原因:我们不需要显示那些特定类的调用,它不是我们 Doxygen 设置的目的。所以你是说我应该用 LaTEX 脚本修补 Doxygen 提供的我的 html 文件(这会删除调用图)?我正在考虑使用 .bat 脚本(顺便说一下,我在 Windows 上工作)在 doxygen 过程之后修补我的 html 文件,但它并没有提供好的感觉。但是,如果修补是唯一的解决方案,为什么不呢!这就是你在想/在谈论的吗?
-
不,你不需要LaTeX,你可以直接给html打补丁。只需让您的脚本用单个像素图形替换输出 html 文件夹中不需要的图形文件。或者您可以去掉引用该图形的 html。您仍然会花费大量时间来生成图表,但您可以在生成图表后将其扔掉。