【问题标题】:Cond statement doxygen does not workCond 语句 doxygen 不起作用
【发布时间】:2017-08-20 07:52:32
【问题描述】:

我正在尝试使用 cond 的 doxygen 构造分离内部和外部文档;但我似乎无法让它工作。我基本上想完全而不是有条件地排除一些文件。无论我在哪里添加标签(在包含之前,在标头保护之前等),文件和源都会显示出来。

我徒劳地尝试从 doxegen repo 获取测试文件 conditional test 并将其添加到项目中。

重现 [Linux] 的步骤

  • 创建一个新目录。
  • 复制粘贴上面的文件(必须将其重命名为 .h,因为 .c 被传递了?)。
  • 通过 doxygen -g 生成虚拟配置。
  • 更新 Doxyfile ENABLED_SECTION = COND_ENABLED。
  • 运行 doxygen。
  • 检查 html/index.html

然而,这在它为项目生成的 html 文档中仍然可见。我已将 ENABLED_SECTION 变量设置为其他值,但 cond_enabled 函数仍然显示。运行它通过的项目(doxygen)的测试目录。所以我迷路了。

有什么建议吗?

已尝试使用最新版本 1.8.14。

谢谢!

【问题讨论】:

  • 在实际生成文档时不将文件传递给doxygen 怎么样?还是EXCLUDE 配置设置之一 (see the documentation for doxygen)?
  • 在此处发布您的代码。
  • 您可能想发帖到 Doxygen 论坛之一或发送到他们的电子邮件列表。
  • @Someprogrammerdude :这当然有效;但这对未来的我来说是个问题:)
  • @ThomasMatthews :会这样做,只是想确保我没有搞砸什么。

标签: doxygen


【解决方案1】:

关于\cond 问题(我认为不是直接回答您面临的真正问题,而是渴望发表评论)。

提到的文件用于有限的测试 doxygen 可以做/做的事情,第一行包含一些关于做什么的说明。此外,还有一个默认的 Doxyfile,其中包含正在使用的测试。很难在 doxygen 构建树之外运行单独的测试。

关于“运行它通过的项目(doxygen)的测试目录”这句话。这是正确的,此时,仅针对 XML 输出进行测试,并将生成的输出与曾经创建的 XML 输出版本进行比较。目前,没有针对 HTML 或 PDF / LaTeX 进行测试。最近测试框架略有扩展,所以将来应该可以实现(比较 xhtml 和 tex 输出,但这里还有一些工作要做)。

解析器的版本将第一行中的\cond(普通C 注释)视为一个doxygen 命令,并跳过所有内容直到第一个\endcond(在这些情况下,您的朋友总是doxygen -d preprocessor)。我认为删除/修改第一行将产生更好的结果。然而,还有另一个问题,例如HTML 输出。由于函数cond_enabled 没有记录并且EXPAND_ALL 没有设置为YES,所以函数不会出现在文档中。所以最好也添加一行带有cond_enabled函数的文档。

关于看到的 HTML 问题,我稍微修改了 doxygen 中的相关测试,并将建议的补丁推送到 github(拉取请求 714,https://github.com/doxygen/doxygen/pull/714)。

注意:在普通 C 注释中跳过\cond 的问题很难实现(参见 pre.l 和 commentcnv.l 中 doxygen 代码的逻辑复杂性。

编辑:2018/06/10:推送请求已集成到 github 上的主版本中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 2012-02-29
    • 2012-07-16
    • 2012-02-09
    • 2013-03-25
    • 2023-03-07
    • 2021-04-23
    相关资源
    最近更新 更多