我在 Windows 机器上使用 Doxygen 1.8.6 并尝试使用通配符添加输入目录。
我有一个目录,其中包含几个包含源代码的子目录,但我只想添加特定目录。在下面的例子中,我只想让 Doxygen 解析以字符串 'own_' 开头的子目录。
目前我正在分别添加每个目录,但这非常不方便,因为版本可能会更改,甚至包含的模块/库(目录内容由另一个程序生成)。
modules\
lib_x\
mod_ab\
ext_mod_ab\
ext_lib_cde\
own_module_foo_1v1\
own_module_bar_2v0\
own_library_foo_1v0\
own_library_bar_1v0\
提前谢谢你。
解决方案是使用
@include {filename}
在 doxyfile 中。引用的文件必须使用脚本生成。 我的 doxyfile 看起来像这样
INPUT = .
@INCLUDE = temp_path_file
获取所有匹配目录所需的命令脚本在 Windows 下看起来像这样(掩码,例如 path1_*,同样有效):
for /d %%a in ("%USER_PATH%\*") do echo INPUT += %%~fa >> %FILE_NAME%
使用批处理脚本来创建你的 doxygen 手册。附加你的 doxygen 手册:
INPUT += %directory%
通过 Windows Shell 命令
echo
。您可以在那里按名称过滤目录,并仅添加特定的文件夹。
我的解决方案是利用Doxygen对扩展环境变量的支持:
INPUT = $(SPACE_SEPARATED_LIST)
正如示例变量名称所暗示的,变量的值需要是以空格分隔的文件或目录名称列表。
当然,您需要导出
SPACE_SEPARATED_lIST
变量,以便 Doxygen 知道它。
截至 2023 年 2 月,已接受的答案对我不起作用。我在基于 Debian 的操作系统上运行 Doxygen 1.9.6。接受的答案说要这样做:
INPUT = .
@INCLUDE = temp_path_file
由于 INPUT = .
行,Doxygen 似乎仍在搜索所有目录。