有哪些方法可以记录我的项目CMakeLists.txt
文件和本地项目.cmake
文件?有一个两年前的问题/答案Documenting CMake scripts,我基本上再次在这里问。答案包含声明
目前,CMake 3.0正在开发中,它将获得基于Sphinx和reStructuredText的新文档系统。我想这会带来记录模块的新方法。
我查看了cmake developer documentation,但是这个新文档系统似乎是针对cmake本身的文档。我不知道如何使用它来记录我的用户定义的项目CMakeLists.txt
文件或本地.cmake
文件。
我希望,因为cmake项目内部有各种sphinx指令和角色,作为用户,我可以利用sphinx的这种内部用法。我希望能够在我的CMakeLists.txt
文件和本地.cmake
文件中包含一些标记,而无需重新发明轮子。其他项目也有相关的努力。例如,ROS catkin项目似乎提供了我所见过的最完整的方法,但对于非ROS项目来说,这是非常重要的,不容易使用。 (例如,查看他们的extracted cmake api page。)最简单的是sphinx-contrib cmakedomain,但它依赖于单独的第一个源文档而不是带有标记的 autodoc 方法评论。
也许这是cmake列表的问题,但我希望有人监控StackOverflow。
答案 0 :(得分:1)
尽管有引用,但我认为CMake中与Sphinx相关的代码对用户没有用。我和你一样经历了同样的经历,我的项目CMake与CMake文档中使用的Sphinx代码不匹配。
只需使用普通的Sphinx并创建自己的模板。
答案 1 :(得分:1)
好消息:您可以使用 sphinx 来记录您的 CMake 模块,同时使用 Doxygen 来记录您的 C++(或其他)源代码。
我创建了一个示例项目,展示了如何结合使用 sphinxcontrib-moderncmakedomain
与 Sphinx 和 Doxygen 来为您的 C++ 代码和 CMake 代码生成文档:
https://gitlab.com/Pro1/doxygen-cmake-sphinx
它使用 sphinxcontrib-moderncmakedomain
包和 CMake 本身来配置 sphinx conf.py
,然后运行 sphinx。
该示例主要基于来自 https://gitlab.kitware.com/cmake/cmake/-/tree/master/Utilities/Sphinx
的官方 CMake 文档另请参阅此处的相关问题: What is the proper way to document a CMake module?