如何在Doxygen中为组内所有成员批量添加统一警告提示
Doxygen按组批量添加警告的实现方案
以下方案均兼容1.8.17版本,无需手动给每个接口单独加@warning指令。
方案1:自定义布局注入全局组警告(最符合需求,一次配置永久生效)
可以实现底层API组的所有成员页面顶部自动显示统一警告,即使用户直接访问单个成员页面也能看到提示。
- 第一步:生成默认布局文件,命令行执行
doxygen -l即可生成默认的DoxygenLayout.xml文件。 - 第二步:修改布局文件,找到
<memberdef>节点,在其内部最开头位置添加自定义警告块,配合条件判断仅给底层API组的成员显示警告:
<memberdef> <variablelist id="low_level_warning" visible="yes"> <title>重要警告</title> <para> <if condition="@ingroup 替换为你的底层API组名"> <warning>本接口属于底层API组,仅面向资深用户开放,调用需严格遵循安全规范,错误使用可能导致程序崩溃、数据损坏等不可预期后果。</warning> </if> </para> </variablelist> <!-- 原有memberdef下的其他节点保持不变即可 --> </memberdef>
- 第三步:修改Doxyfile配置,找到
LAYOUT_FILE项,设置为你修改后的DoxygenLayout.xml路径,同时开启ENABLED_SECTIONS配置保证条件判断生效。
方案2:使用ALIASES自定义批量指令(无需修改布局,操作更简单)
不想改布局文件可以用这个方案,能实现类似你提到的@warning_to_all的效果:
- 第一步:修改Doxyfile的
ALIASES配置项,添加如下内容:
ALIASES += "low_level_api_warning=\warning 本接口属于底层API组,仅面向资深用户开放,调用需严格遵循安全规范,错误使用可能导致程序崩溃、数据损坏等不可预期后果。"
- 第二步:在底层API组的定义块中仅添加一次该指令即可,组内所有成员的文档会自动带上该警告:
/** * @defgroup low_level_api 底层API组 * @warning 本组所有接口仅适用于资深用户,请谨慎调用 * @low_level_api_warning * @{ */ // 所有底层API的定义都放在该块内 /** @} */
方案3:文件级批量添加(适合底层API单独存放在指定目录/文件的场景)
如果你的底层API都统一放在单独的文件夹或者特定文件中,可以直接在文件级别加一次警告,自动继承给文件内所有成员:
- 修改Doxyfile的
ALIASES配置:
ALIASES += "low_level_file_warning=\warning 本文件内所有接口属于底层API组,仅面向资深用户开放,调用需严格遵循安全规范。"
- 在对应底层API文件的开头
@file注释块中添加一次@low_level_file_warning即可,文件内所有接口的文档都会自动显示该警告。
内容的提问来源于stack exchange,提问作者Felix Bertoni
相关产品推荐
相关产品推荐

