【问题标题】:Make correct doxygen documentation a build requirement使正确的 doxygen 文档成为构建要求
【发布时间】:2018-10-17 18:13:19
【问题描述】:

我正在使用 Doxygen 记录一个越来越大的 C++ 项目,我一直想知道如何使 Doxygen 成为项目的构建要求。换句话说,如果有任何类/方法/等,我希望我的构建过程失败并停止。 Doxygen 尚未成功记录。我使用make 进行构建。

例如,我希望它失败(即不构建):

/**
 * @bbrief Oops, tag does not exist, warning is issued and hence build fails.
 */
void f()
{
    // Do something...
}


/**
 * @brief Main function for program X
 *
 * @return End of execution status.
 *
 * ...
 *
 */
int main()
{
    f();

    return 0;
}

但是这个要构建:

/**
 * @brief Okay, this is fine.
 *
 */
void f()
{
    // Do something...
}


/**
 * @brief Main function for program X
 *
 * @return End of execution status.
 *
 * ...
 *
 */
int main()
{
    f();

    return 0;
}

我曾尝试在 Internet 上搜索此类功能,但到目前为止一无所获。

【问题讨论】:

  • @battlmonstr 有趣的链接,我一定会激活那些警告。但它们只是警告,它们不会停止构建过程。我已经更新了这个问题以更多地反映这一点。

标签: doxygen


【解决方案1】:

在大多数情况下,文档会生成,但由于警告,它是不完整的。我看到了一些可能性:

编辑

正如@inkychris 所指出的,WARN_AS_ERROR 在 doxygen 版本 1.9.0 中具有FAIL_ON_WARNINGS 的可能性。来自文档:

WARN_AS_ERROR

如果WARN_AS_ERROR 标签设置为YES,那么当遇到警告时 doxygen 将立即停止。如果WARN_AS_ERROR 标签设置为FAIL_ON_WARNINGS,那么 doxygen 将继续运行,就像WARN_AS_ERROR 标签设置为 NO,但在 doxygen 进程结束时,doxygen 将返回 具有非零状态。

可能的值为:NOYESFAIL_ON_WARNINGS

【讨论】:

  • 不错的选择。对于第一个选项,您知道 Doxygen 返回特定的错误代码还是被视为成功的程序运行?换句话说,有没有办法让make 知道 Doxygen 停止是因为它产生了警告,而不是因为它完成了正常生成?
  • 通常 doxygen 返回 0,如果出现错误则返回 1(如果子进程被分叉,它也可能返回错误 127)
  • 从 doxygen v1.9 开始,WARN_AS_ERROR 现在也接受 FAIL_ON_WARNINGS 的值,这将使 doxygen 运行但返回非零状态代码。
  • @inkychris 谢谢,确实我已经更新了答案,所以也显示了这种新的可能性((从 2020 年 12 月 27 日开始)。
猜你喜欢
  • 2011-06-09
  • 2017-08-22
  • 2014-05-01
  • 2014-02-12
  • 2011-09-02
  • 2012-08-20
  • 2016-01-25
  • 2016-11-21
  • 2011-11-11
相关资源
最近更新 更多