如何忽略doxygen中生成的代码

如何忽略doxygen中生成的代码,doxygen,Doxygen,因此,我们正在一个大项目中使用强氧 一些源代码是在构建过程中生成的, 如my\u生成的\u代码\u片段.h 它在源代码中使用,如下所示 文件foo.cc void foo() { #include "my_generated_code_fragment.h" } 现在,在源代码管理下从存储库运行doxygen时, doxygen正确地抱怨缺少文件my\u-generated\u-code\u fragment.h, 错误如下: foo.cc:1234:警告:包含文件my\u生成的\u代码\u片

因此,我们正在一个大项目中使用强氧

一些源代码是在构建过程中生成的, 如
my\u生成的\u代码\u片段.h

它在源代码中使用,如下所示

文件
foo.cc

void foo()
{
#include "my_generated_code_fragment.h"
}
现在,在源代码管理下从存储库运行doxygen时, doxygen正确地抱怨缺少文件
my\u-generated\u-code\u fragment.h
, 错误如下:

foo.cc:1234:警告:包含文件my\u生成的\u代码\u片段.h不是 找到时,可能您忘记添加其目录以包含\u路径

问题 我们不想先执行完整构建,只想生成缺少的 文件,以便生成文档。 请注意,生成的代码并不包含doxygen注释

迄今为止考虑的解决办法
  • 无所事事
  • 不执行任何操作,忽略强氧错误。 不太令人满意

  • 生成虚拟文件
  • 在运行之前生成虚拟文件,如
    my\u generated\u code\u fragment.h
    强氧剂

    这在构建脚本中造成了复杂性, 在不同的项目中,“使用doxygen”现在有所不同, 因为包含生成代码的文件不同

  • 使用预处理器标志
  • 将代码更改为

    void foo()
    {
    #ifndef IN_DOXYGEN
    #include "my_generated_code_fragment.h"
    #undef IN_DOXYGEN
    }
    
    并设置
    预定义的

    这是迄今为止考虑的最佳解决方案,但它意味着更改代码

    问题: 是否有更好的选择,例如使用Doxyfile中的设置告诉doxygen 该文件
    my\u生成的\u code\u片段.h
    预计将丢失, 应该被忽略吗

    注:

    EXCLUDE
    对此不起作用, 因为在解析文件
    foo.cc
    时会看到错误,而不是在解析生成的代码时


    目前正在使用doxygen 1.8.5版。

    记录当时采取的解决方案

    解决方案3,在使用doxygen构建时使用预处理器标志,并更改代码中使用生成内容的(小)部分效果良好


    这允许在“原始”源代码上使用doxygen,源代码取自git。

    我决不是doxygen内部的专家。但我相信最好的选择是(3),使用预处理器标志。请告诉我们您是如何解决这个问题的。