将特定头文件添加到每个记录的* .c文件中

时间:2015-07-22 18:42:44

标签: doxygen

所以我有一个小项目,一堆* .c,*。h文件。配置文件中有许多#define语句形式的编译时开关,用于启用/禁用特定功能。所以文件settings.h可能包含

#define ENABLE_THIS_FEATURE  1
#define ENABLE_THAT_FEATURE  0
#define THAT_BUFFER_SIZE   128

现在的诀窍是,每个编译单元的设置文件都不是明确的#include d。相反,它使用gcc的-imacros开关进行每个编译,例如gcc -imacros settings.h -o module.o module.c

现在我希望设置文件在源上运行doxygen时也有前置,这样它就可以为完全启用的功能生成doc。虽然该文件本身通常由Doxygen处理(它只是源树中的另一个文件),但其中的宏定义不会生效;看来,每个文件都是单独评估的(这当然是明智之举)。

可接受的替代方案是在命令行上提供每个定义,例如gcc的-D开关。显然#include每个编译单元中的设置文件不是一个选项(否则我不会采用gcc特定的-imacros方法)。

1 个答案:

答案 0 :(得分:1)

这里感兴趣的配置指令是PREDEFINED

PREDEFINED += ENABLE_THIS_FEATURE=1
PREDEFINED += ENABLE_THAT_FEATURE=0
PREDEFINED += THAT_BUFFER_SIZE=128

现在可以使用某些脚本foo从相关的头文件生成此内容。 (Doxygen可以从stdin读取其配置文件。) 一旦你知道它,就不那么难了。 ; - )

提示:确保你已正确编造了INCLUDE_PATH。