[英]Prevent Doxygen from carrying out conditional compilation (compiler-intrinsic defines)
我有很多代码基于编译器提供的定义进行条件编译,而不是代码本身或外部标头中的任何定义。 例如,我经常出现以下情况:
#if defined _MSC_VER || defined __ICL
// A lot of freakin code
#elif defined __GNUC__ || defined __ICC
// A bunch more here
#else
#error "Unsupported environment"
#endif
我需要为特定于platofm / compiler的部分中的所有代码生成文档,但是我不能简单地将ENABLE_PREPROCESSING设置为NO,因为根据该文档,INCLUDE_GRAPH和INCLUDED_GRAPH必须为YES。
那么,我该怎么做呢?
首先,您必须在doxygen配置的“预定义”部分中定义宏DOXYGEN
或类似名称。 然后,您必须将#elif
拆分为单独的#if
并跟踪已找到一个有效配置的事实。
#if defined _MSC_VER || defined __ICL || defined DOXYGEN
#define WE_FOUND_SOME
// A lot of freakin code
#endif
#if defined __GNUC__ || defined __ICC || defined DOXYGEN
#define WE_FOUND_SOME
// A bunch more here
#endif
#ifndef WE_FOUND_SOME
# error "Unsupported environment"
#endif
但是请注意,如果这些不同的部分定义了相同的功能或宏,那么该doxygen将很容易丢失。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.