Clang-Doc

clang-doc 是一个从源代码和注释生成 C 和 C++ 文档的工具。

该工具处于非常早期的开发阶段,因此您可能会遇到错误和崩溃。向 LLVM 错误跟踪器 提交有关如何重现问题的报告将无疑对项目有所帮助。如果您有任何想法或建议,请在那里提出功能请求。

使用

clang-doc 是一个基于 LibTooling 的工具,因此需要您的项目编译命令数据库(有关如何执行此操作的示例,请参见 如何为 LLVM 设置工具)。

该工具默认情况下将处理文件列表

$ clang-doc File1.cpp File2.cpp ... FileN.cpp

该工具也可以与编译命令数据库一起使用

$ clang-doc --executor=all-TUs compile_commands.json

要仅从数据库中选择文件子集,请使用 --filter 标志

$ clang-doc --executor=all-TUs --filter=File[0-9]+.cpp compile_commands.json

输出

clang-doc 生成一个文档目录。为项目源代码中的每个命名空间和记录生成一个文件,其中包含该项目的全部文档(包括包含的函数、方法和枚举)。

顶层目录可以通过 output 标志进行配置

$ clang-doc --output=output/directory/ compile_commands.json

配置

目前,clang-doc 的配置仅限于命令行选项。将来,它可能会开发使用配置文件的能力,但目前尚无此类工作。

选项

clang-doc 提供以下选项

$ clang-doc --help
OVERVIEW: Generates documentation from source code and comments.

Example usage for files without flags (default):

  $ clang-doc File1.cpp File2.cpp ... FileN.cpp

Example usage for a project using a compile commands database:

  $ clang-doc --executor=all-TUs compile_commands.json

USAGE: clang-doc [options] <source0> [... <sourceN>]

OPTIONS:

Generic Options:

  -help                      - Display available options (-help-hidden for more)
  -help-list                 - Display list of available options (-help-list-hidden for more)
  -version                   - Display the version of this program

clang-doc options:

  --doxygen                   - Use only doxygen-style comments to generate docs.
  --extra-arg=<string>        - Additional argument to append to the compiler command line
                                Can be used several times.
  --extra-arg-before=<string> - Additional argument to prepend to the compiler command line
                                Can be used several times.
  --format=<value>            - Format for outputted docs.
    =yaml                     -   Documentation in YAML format.
    =md                       -   Documentation in MD format.
    =html                     -   Documentation in HTML format.
  --ignore-map-errors         - Continue if files are not mapped correctly.
  --output=<string>           - Directory for outputting generated files.
  -p <string>                 - Build path
  --project-name=<string>     - Name of project.
  --public                    - Document only public declarations.
  --repository=<string>       -
                                URL of repository that hosts code.
                                Used for links to definition locations.
  --source-root=<string>      -
                                Directory where processed files are stored.
                                Links to definition locations will only be
                                generated if the file is in this dir.
  --stylesheets=<string>      - CSS stylesheets to extend the default styles.

如果 format 设置为 html,则以下标志仅应使用: - repository - source-root - stylesheets