自动更新 Doxygen 文档并使用户可以随时使用 CMake

Automatically updating Doxygen documentation and making it readily available to users with CMake

我曾使用 CMake 和 运行 Doxygen 构建的多个 C++ 库来生成 HTML 文档。在这些库中的每一个中,文档都内置在 CMake "build" 目录中的 "html" 文件夹中,并且永远不会被任何人查看。

因为老实说,大多数人根本不喜欢阅读文档 - 更不用说搜索了。

这引出了几个问题:

  1. 是否有一个标准的位置来安装文档,一旦它被构建,用户可以非常清楚地知道文档可用于库?

  2. 我如何确保每次构建我的库时,文档都会自动更新并安装在这个标准位置?

  3. 是否有任何标准方法可以保留过去版本的文档以供参考,以防有人使用该库的早期版本?

1) 根据Filesystem Hierarchy Standard

4.11.3. Specific Options
The following directories, or symbolic links to directories, must be in /usr/share, if the corresponding subsystem is installed:
Directory Description
...
doc Miscellaneous documentation (optional)

2) 我会说,你可以在安装目标中添加一个命令来复制 prefix/usr/share/doc[=27= 中的 doxygen ]

首先在构建目录中添加 doxygen,恕我直言似乎没问题。

3) 通常,对于具有包管理器的发行版,您可以创建一个文档包,因此想要 "past" 文档的用户只需要获取与二进制包具有相同版本的包文档...

注意:在 Archlinux 上,文档随库一起提供,在 Debian 上,就像你有 package-doc,自制软件 IIRC 也是如此

注意:您还可以配置 doxygen,这样生成的错误消息就可以像常规 gcc 错误一样被 ide(例如 QtCreator)解析,这样您就可以在每次构建时在错误日志中看到它们。

您似乎有两个截然不同的问题:

一个。构建软件的开发人员甚至不知道他们正在使用的构建的 doxygen 部分

乙。普通用户也不知道有可用的文档(来自 doxygen 或其他)

乙。这不是一个真正的技术问题,所以我将专注于开发人员。首先,您应该将 doxygen 作为构建的一部分 "opt-out",我的意思是默认启用。只需为此使用常规(和伪造的)cmake 依赖项;换句话说,对 cmake 撒谎并假装构建库需要构建 doxygen。在 doxygen rule/command 中,使用 cmake COMMENT 功能,像这样:COMMENT "doxygen building documention in ${DOXYOUT}"。由于通常需要一段时间,开发人员会注意到。在构建的最后使用 cmake 消息 "Reminder, you just built documentation in ${DOXYOUT}"

现在回到您更具体的问题:

  1. 没有标准位置,但请参阅上面的内容。
  2. 见上文。
  3. 使用常规版本控制存储库,并在每次发布时检查 doxygen 输出文件夹。这可以成为您发布自动化的一部分。

也看看https://readthedocs.org/