【问题标题】:How to use a conditional in Doxygen that interacts with the installation option如何在 Doxygen 中使用与安装选项交互的条件
【发布时间】:2026-01-16 17:30:02
【问题描述】:

我在发布问题之前已经搜索了该网站,但找不到答案。

我的任务是为具有不同类型硬件安装选项的软件创建用户手册。更清楚地说,用户选择硬件 A、B 或 C 等的安装。然后会启用一些功能,而会禁用一些功能。

用户手册基本上是一个文本文件 (.txt),其中还包括相关的 Doxygen 命令(addtogroup、defgroup、ref 等)。

我试图找出如何自动将一些信息放在用户手册上,例如硬件 A,如果安装选项 A 并排除硬件 B 的信息?

我搜索了 Doxygen 手册和各种论坛,包括这个,到目前为止,我想出了一个笨拙的想法,它不起作用。

*** This is my manual.txt file. The following is the relevant piece. ***

/*! \defgroup info1 Scripts
    \ingroup manual
    Several  scripts are provided to help the user perform sophisticated tasks. 

\if \$(OPTION_SETUP)=OPTION1
    <ul>
    <li> \ref option1_related_section 
    <li> \ref option1_related_example_text 
    </ul>
\endif

\if \$(OPTION_SETUP)=OPTION2
    <ul>
    <li> \ref option2_related_section
    <li> \ref option2_related_example_text
    </ul>
\endif
*/

这不起作用。 我不是开发人员,我知道我遗漏了一些东西。

我看到 \if 和 \cond 只能用于部分名称。 但是我不知道如何根据安装选项使用条件来选择 manual.txt(这是我们的用户手册,而不是开发人员)上的一段文本。

Doxygen 真的可以吗?

【问题讨论】:

    标签: documentation doxygen


    【解决方案1】:

    \if 和 \cond 等仅使用在 Doxyfile 的 ENABLED_SECTIONS 中定义的变量(对于条件,您可以使用带有 &&、|| 和 ! 的简单表达式)。所以你不能在那里使用带有'='的表达式。 在您的情况下,您可以制作 2 个 Doxyfile,一个用于选项 A,另一个用于选项 B,请注意,Doxyfile 可以通过 include 语句共享部分。在一个 Doxyfile 中,您将在 ENABLED_SECTIONS 和另一个 OPTION2 中定义 OPTION1,if 语句将读取 \if OPTION1 和另一个 \if OPTION2

    【讨论】: