【问题标题】:Doxygen: Outputting Version NumbersDoxygen:输出版本号
【发布时间】:2016-09-19 20:40:53
【问题描述】:

我想让 Doxygen 将源代码版本号显示为主页或标题的一部分。

目前,我们的代码将版本定义为文本文字:

/*!
 *  \brief  Text literal containing the build number portion of the
 *              ESG Application Version.
 */
static const char   build_version_text[] = "105";

我已经在互联网上搜索了一种将上述语句中的 105 放入 Doxygen 主页(或标题)的方法,但没有成功。

背景
我们有一个构建服务器,它更新文本字符串作为夜间构建操作的一部分。该文件已更新,然后签入软件配置管理系统。构建服务器也能够生成文档。我们还希望开发人员能够检查代码,在他们的工作站上构建 Doxygen 文档。

我们使用的是 Doxygen 1.8.11 版。

【问题讨论】:

  • 我读到了,但我希望有一个不涉及环境变量的解决方案。
  • @ThomasMatthews,请查看我修改后的答案。没有环境变量,脚本由 doxygen 本身驱动,所以应该可以在自动构建和开发人员在他/她的工作站上使用。

标签: versioning doxygen


【解决方案1】:

您正在寻找的是根据源中的值设置PROJECT_NUMBER 配置选项。我不认为这是可以做到的,但我要达到相同结果的方法如下。

由于在构建脚本运行时会更新项目版本,因此请让构建脚本生成一个额外的文件,例如 Doxyversion。文件内容为:

PROJECT_NUMBER = "<versiontext>"

更新你的主 Doxyfile 并替换

PROJECT_NUMBER =

@INCLUDE = "<pathToDoxyversion>"

编辑:

我能想到的不需要复制版本字符串的解决方案需要将版本字符串从文件解析到环境变量中。然后可以将PROJECT_NUMBER设置为

PROJECT_NUMBER=$(ENV_VAR)

另一种选择是你可以调用 doxygen

( cat Doxyfile ; echo "PROJECT_NUMBER=$ENV_VAR" ) | doxygen

这两种解决方案都需要开发人员在生成文档或将整个 doxygen 调用包装在脚本中时知道这样做。还有潜在的可移植性问题。

【讨论】:

  • 我认为不需要额外的文件。我们可以编写一个可以为 PROJECT_NUMBER 选项插入(替换)文本的构建脚本。我希望只有一个版本字符串实例的解决方案。
  • 够了,我添加了一种我能想到的方法,但我发现它比重复值更糟糕,呵呵。
【解决方案2】:

下面的完整解决方案,来自一个真实的例子。

主页

在主页(或任何地方,实际上)的文档中,使用特殊标记来动态替换文本。

主页来源: https://github.com/mysql/mysql-server/blob/8.0/sql/mysqld.cc#L22

查看特殊的${DOXYGEN_GENERATION_DATE} 标记

Doxygen 输入过滤器

在 doxygen 配置文件中,为包含特殊标记的文件定义一个输入过滤器。例如,

FILTER_PATTERNS = "*/sql/mysqld.cc=./doxygen-filter-mysqld"

实现doxygen-filter-mysqld 脚本以:

  • 查找要替换的动态值(在您的情况下,解析 build_version_text 的值)
  • 用值替换 (sed) 特殊标记
  • 将结果输出到stdout

例如:

CMD1="s/\\\${DOXYGEN_GENERATION_DATE}/"`date -I`"/g"
...
sed -e ${CMD1} -e ${CMD2} -e ${CMD3} $1

结果

结果在 http://devdocs.no.oracle.com/mysql-server/8.0.0/

另见

所有这些都是一种解决方法,我认为这应该是一个很好的 Doxygen 功能。 请参阅为此输入的错误#769679(功能请求:doxygen 命令以扩展环境变量)。

https://bugzilla.gnome.org/show_bug.cgi?id=769679

【讨论】:

    猜你喜欢
    • 2017-02-23
    • 1970-01-01
    • 2011-04-01
    • 2018-01-14
    • 2013-02-07
    • 1970-01-01
    • 2014-11-18
    • 2011-05-28
    • 1970-01-01
    相关资源
    最近更新 更多