doxygen

2018.04.16 by jianfeng

1. 参数配置

基础配置

  • 一些简单易懂的就不做笔记了,比如:
    • 编码(工程,源码,输出chm等)
    • 源文件地址,文档输出地址,hhc地址
    • graphviz 工具 DOT的配置
    • ...
  • SOURCE_BROWSER

    让源代码可以像头文件一样单独显示,比如.c中的文件。这个功能适合提供源文件的。比如stm32库

  • INLINE_SOURCES

    表示直接在文档中就体现函数等的源码(注意和SOURCE_BROWSER的区别)

  • STRIP_CODE_COMMENTS

    一般配置为NO,这样查看原文件的时候,所有的注释都能显示出来。默认是YES,表示文档摘出去的注释将不再源文件提示中显示

  • REFERENCED_BY_RELATION

    被谁引用

  • REFERENCES_RELATION

    引用了谁

  • REFERENCES_LINK_SOURCE

    如果SOURCE_BROWSER配置YES,那么该项表明引用的文件可以直接跳转到相应源码处

EXTRACT配置

  • EXTRACT_ALL
  • EXTRACT_PRIVATE

    类的私有成员

  • EXTRACT_PACKAGE
  • EXTRACT_STATIC

    static 声明的变量和函数

  • EXTRACT_LOCAL_CLASSES

    类的源文件也会被包含。"NO"仅仅包含头文件中的类定义

  • EXTRACT_LOCAL_METHODS

    This flag is only useful for Objective-C code

  • EXTRACT_ANON_NSPACES

预处理配置

  • ENABLE_PREPROCESSING

    开启预处理,开启之后对于#define可以识别,在c文件中也能创建链接

  • PREDEFINED

    声明某个宏定义,对于通过#ifdef来条件判断的,很有效

PREDEFINED             = "DEBUG"

GRAPH配置

  • HAVE_DOT

    DOT是Graphviz工具的一部分,若YES,则采用该工具绘图。其他同类工具选项无效

  • DOT_PATH

    工具路径,若默认路径能找到该工具(似乎环境变量中添加路径有效),则该项可不填

  • INCLUDE_GRAPH

    文档包含关系图,但占用时间大。主要针对头文件

  • INCLUDED_BY_GRAPH

    文档被包含关系图,但占用时间大。主要针对头文件

  • CALL_GRAPH

    函数调用关系图,但占用时间大

    • 注意:不一定会把所有的调用关系都链接好,之前出现过明明函数调用没问题,但是关系图不显示的问题 (版本:1.8.14)
  • CALLER_GRAPH

    函数被调用关系图,但占用时间大

HAVE                   = YES
DOT_PATH               = "D:\Program Files\graphviz\bin"
INCLUDE_GRAPH          = NO
INCLUDED_BY_GRAPH      = NO
CALL_GRAPH             = YES
CALLER_GRAPH           = NO

其他配置

  • EXTENSION_MAPPING

    可以将md文件直接作为新的一页文档添加

分组配置

我暂时还用不到,先不详细介绍了

2. 注释风格

  • 函数注释示例

    包括以下几个方面

    • 函数简述
    • 参数说明
    • 返回值说明
    • 函数调用示例(其中后面的{.c}表示这是c调用示例)。若你写的是python示例,则为{.py}
/**
 * @brief ftl 读操作
 * 
 * @param paddr 逻辑地址
 * @param data 读取的数据
 * @param len 读取的数据长度
 *
 * @retval true 读取成功
 * @retval false 读取失败
 *
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.c}
 *	uint32_t addr = 0x0000;
 *	uint8_t data[64];
 *	// 注意地址指针的用法
 *	ftl_read((uint32_t *)addr,data,64);
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
  • 文件头注释

    包括以下几个方面

    • 函数简述
    • 文件名称
    • 作者信息
    • 创建时间
/**
 * @brief 文件简述
 * 
 * @file apdu.h
 * @author wenjf
 * @date 2019/4/26
 */
  • MarkDown文件支持

    常用的基本都支持,此处不用详细说明

  • Latex

    数学公式是其最大的亮点,暂用不到这么强大功能

  • 内嵌HTML

    直接写html,支持的标签有限