带有Doxygen的自定义标签

时间:2009-02-11 14:32:37

标签: doxygen

我想弄清楚是否有办法使用Doxygen创建自定义标签。我确实找到了ALIAS配置文件选项,但这并不能完全满足我的需要。基本上在我的代码中,我希望能够编写类似

的内容
/// \req Requirement #322 - blah blah

然后让Doxygen为具有此自定义标记的行创建一个类似于\bug\todo命令的列表。 Doxygen可以实现吗?

3 个答案:

答案 0 :(得分:44)

\bug\todo的概括是\xrefitem

我建议的解决方案是:

    Doxyfile中的
  • ALIASES += "req=\xrefitem req \"Requirement\" \"Requirements\" "
    
  • 文件代码中的
  • /// \req #42 - The system shall work in any situation
    

答案 1 :(得分:21)

谢谢mouviciel!我采用了你的解决方案并将其扩展到我的目的。

下面的文字进入我的Doxyfile:

ALIASES += req{1}="\ref SRTX_\1 \"SRTX-\1\" "
ALIASES += satisfy{1}="\xrefitem satisfy \"Satisfies requirement\" \"Requirement Implementation\" \1"
ALIASES += verify{1}="\xrefitem verify \"Verifies requirement\" \"Requirement Verification\" \1"

其中SRTX是我的项目的名称,并用作要求的前缀。

然后我创建了一个名为Requirements.dox的文件,该文件在需求ID和我的需求管理工具中的需求URL之间提供了一个链接(在我的案例中是一个问题跟踪器)。

/**
@page Requirements

@section Build1

@anchor SRTX_1113
<a href="https://foo.bar.com/mantis/view.php?id=1113">SRTX-1113</a>

@anchor SRTX_1114
<a href="https://foo.bar.com/mantis/view.php?id=1114">SRTX-1114</a>

*/

如果您不需要链接到外部源,也可以将需求的文本放在锚标记中。

在我的代码中,我有:

/**
 * This is the basic executive that schedules processes.
 * @satisfy{@req{1114}}
 */
class Scheduler: public Process
{
    ...
}

在我的测试中,我说:

/**
 * Provide a number of tests for process scheduling.
 * @verify{@req{1114}}
 */
class Scheduler_ut : public CppUnit::TestFixture
{
    ...
}

这为我提供了需求,需求实现和需求验证的相关页面。它还提供了满足要求和验证类描述中的需求部分(或函数 - 无论您将标记放在何处)。

答案 2 :(得分:3)

结合上面的两个答案 ,您可以拥有一个清洁需求标记,用于构建交叉引用表,并且还提供指向需求的直接链接回复您的文档:

Doxygen CONFIG文件:

ALIASES = "requirement{1}=@xrefitem requirement \"Requirements\" \"Requirements Traceability\" <a href=\"http://your.requirementtool.com/browse/\1\">\1</a>"

源代码:

@requirement{REQ-123} 此要求项的简短文字摘要

这将在文档中呈现为:

<强>要求:

  • REQ-123此要求项的简要文字摘要