【问题标题】:How to make configuration specifications for a single file or more in Doxygen?如何在 Doxygen 中为单个文件或多个文件制定配置规范?
【发布时间】: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。您仍然会花费大量时间来生成图表,但您可以在生成图表后将其扔掉。

标签: graph doxygen dot


【解决方案1】:

反转设置。

在你的 doxygen 配置中关闭调用图,在你想要调用图的类中使用手动命令:

http://www.doxygen.nl/manual/commands.html#cmdcallgraph

不幸的是,这并不能解决类图的问题,因为类图没有手动命令。

您可以使用 dot/graphviz 制作自己的自定义图表,这正是 Doxygen 在幕后所做的: http://www.doxygen.nl/manual/commands.html#cmddot

如果为大型项目执行此操作,您可能需要制作一个脚本,该脚本可以一次从所有文件的代码中构建和插入这些简单的图表。然后你可以手动删除你不想要的。

【讨论】:

  • 所以这是唯一的方法吗? (除了可能对 html 文件进行后处理修补)如果是,那很烦人,因为正如您所说,有很多文件,其中只有少数不需要图表。不过,谢谢你的回答! (这是他们可以在 Doxygen 的下一个版本中添加的那种功能;我的意思是,为什么只有一次禁用所有/启用一个文件选项?)
  • 如果您愿意,可以联系他们获取商业支持:stack.nl/~dimitri/doxygen/support.html
猜你喜欢
  • 2016-04-25
  • 2020-06-17
  • 2013-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 2015-01-23
相关资源
最近更新 更多