Doxygen:将文档的重复部分(如徽章)放在一个地方

时间:2014-09-27 12:12:58

标签: doxygen

我使用doxygen来记录real-time kernel written in C,对于每个函数,我应该至少指定以下内容:

  • 是否可以从任务
  • 调用该函数
  • 是否可以从ISR调用该函数
  • 该功能是否可以导致上下文切换

我想将这些函数属性实现为一种徽章:可能只是一个图像,可能是带有文本的图像,或类似的东西。

所以,我想在一个地方放置所有可能徽章(目前只有三个徽章)的实际doxygen标记,然后在每个函数的文档中“包含”它们。不幸的是,我在doxygen docs中找不到任何相关内容。我看到有一些方法可以包含源文件作为示例:\include,甚至是par或它:\snippet,但是如何包含文档片段?

我无法相信这是不可能的。

1 个答案:

答案 0 :(得分:1)

我找不到一些直截了当的方法,所以我最终得到了hacky makefile环境变量的方法:

生成文件:

define \n


endef

TN_CALL_FROM_TASK     = \image html attr_call_task.png ${\n}\
                        \latexonly \
                        \includegraphics{../../images/attr_call_task.png} \
                        \endlatexonly \

TN_CALL_FROM_ISR      = \image html attr_call_int.png ${\n} \
                        \latexonly \
                        \includegraphics{../../images/attr_call_int.png} \
                        \endlatexonly \

export TN_CALL_FROM_TASK
export TN_CALL_FROM_ISR

all: 
    doxygen tn_doxyfile

然后,在代码中:

/**
 * Some docs for my function
 * 
 * $(TN_CALL_FROM_TASK)
 */
void my_func(void) { ... }

它不是特别优雅,但有效。

注意这种方法的一个缺点:在doxygen 1.8.8(目前最新)中,当从环境变量扩展时,降价语法不起作用。