如何忽略doxygen中生成的代码
How to ignore generated code in doxygen
所以,我们在一个大项目中使用doxygen。
一些源代码是在构建过程中生成的,
喜欢 my_generated_code_fragment.h
在源码中使用,像这样
文件foo.cc
void foo()
{
#include "my_generated_code_fragment.h"
}
现在,当 运行 doxygen 来自源代码控制下的存储库时 ,
doxygen 正确地抱怨文件 my_generated_code_fragment.h
丢失了,
错误如:
foo.cc:1234: warning: include file my_generated_code_fragment.h not
found, perhaps you forgot to add its directory to INCLUDE_PATH?
问题
我们不想先执行完整构建,只是为了生成缺失的
文件,以生成文档。
请注意,生成的代码无论如何都不包含 doxygen 注释。
目前考虑的解决方案
- 什么都不做
什么也不做,忽略 doxygen 错误。
不太满意。
- 生成虚拟文件
在 运行 之前生成类似 my_generated_code_fragment.h
的虚拟文件
氧气.
这会使构建脚本变得复杂,
"using doxygen" 现在在不同的项目中是不同的,
因为包含生成代码的文件不同。
- 使用预处理器标志
将代码更改为
void foo()
{
#ifndef IN_DOXYGEN
#include "my_generated_code_fragment.h"
#undef IN_DOXYGEN
}
并设置PREDEFINED
这是迄今为止考虑的最佳解决方案,但这意味着要更改代码。
问题
是否有更好的选择,比如使用 Doxyfile 中的设置告诉 doxygen
该文件 my_generated_code_fragment.h
预计会丢失,
并且应该被忽略?
注:
EXCLUDE
不适用于此,
因为在解析文件 foo.cc
时出现错误,而不是在解析生成的代码时出现。
目前使用 doxygen 版本 1.8.5。
记录当时采取的解决方案。
解决方案 3,在使用 doxygen 构建时使用预处理器标志,并更改使用生成内容的代码的(小)部分效果很好。
这允许在从 git.
提取的 "raw" 源代码上使用 doxygen
所以,我们在一个大项目中使用doxygen。
一些源代码是在构建过程中生成的,
喜欢 my_generated_code_fragment.h
在源码中使用,像这样
文件foo.cc
void foo()
{
#include "my_generated_code_fragment.h"
}
现在,当 运行 doxygen 来自源代码控制下的存储库时 ,
doxygen 正确地抱怨文件 my_generated_code_fragment.h
丢失了,
错误如:
foo.cc:1234: warning: include file my_generated_code_fragment.h not found, perhaps you forgot to add its directory to INCLUDE_PATH?
问题
我们不想先执行完整构建,只是为了生成缺失的 文件,以生成文档。 请注意,生成的代码无论如何都不包含 doxygen 注释。
目前考虑的解决方案
- 什么都不做
什么也不做,忽略 doxygen 错误。 不太满意。
- 生成虚拟文件
在 运行 之前生成类似 my_generated_code_fragment.h
的虚拟文件
氧气.
这会使构建脚本变得复杂, "using doxygen" 现在在不同的项目中是不同的, 因为包含生成代码的文件不同。
- 使用预处理器标志
将代码更改为
void foo()
{
#ifndef IN_DOXYGEN
#include "my_generated_code_fragment.h"
#undef IN_DOXYGEN
}
并设置PREDEFINED
这是迄今为止考虑的最佳解决方案,但这意味着要更改代码。
问题
是否有更好的选择,比如使用 Doxyfile 中的设置告诉 doxygen
该文件 my_generated_code_fragment.h
预计会丢失,
并且应该被忽略?
注:
EXCLUDE
不适用于此,
因为在解析文件 foo.cc
时出现错误,而不是在解析生成的代码时出现。
目前使用 doxygen 版本 1.8.5。
记录当时采取的解决方案。
解决方案 3,在使用 doxygen 构建时使用预处理器标志,并更改使用生成内容的代码的(小)部分效果很好。
这允许在从 git.
提取的 "raw" 源代码上使用 doxygen