Doxygen 1.8.11开启EXPAND_ONLY_PREDEF时如何生成X宏枚举成员文档
兼容现有配置的解决方法
方案1:修改Doxyfile配置(无需改动代码)
你之前配置失效的核心原因是EXPAND_ONLY_PREDEF = YES开启后,Doxygen仅会主动展开你显式指定的宏,没有把COLOR_VARIABLES加入可展开列表,导致内部的COLOR__X没有被正确解析。
调整Doxyfile配置如下即可:
MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = YES ENABLE_PREPROCESSING = YES PREDEFINED = INNER_FUNC(msg)= \ COLOR__X(name)=name, EXPAND_AS_DEFINED = COLOR_VARIABLES
配置说明:
- 保留你原有
INNER_FUNC的预定义规则,不会影响其他模块的正常解析 - 显式指定
COLOR_VARIABLES需要展开,Doxygen会将宏内部的COLOR__X按你预定义的规则替换成枚举成员,同时保留成员后的/*!< */注释,Doxygen 1.8.11版本完全支持该配置逻辑
方案2:代码层补充注释(无需改动Doxygen全局配置)
如果不想调整全局配置避免影响其他模块,可以直接在枚举定义后显式给生成的枚举成员加注释:
/** COLOR doc */ typedef enum { #define COLOR__X(name) name, COLOR_VARIABLES #undef COLOR__X } color; /** * @var color::RED * "RED COLOR" * * @var color::BLUE * "BLUE COLOR" */
Doxygen会直接匹配到对应枚举成员,生成正确的说明文档。
内容的提问来源于stack exchange,提问作者Gald
相关产品推荐
相关产品推荐

