Doxygen 如何递归扫描项目根目录和 .build 目录?
数据阿明
可以在 INPUT 中同时写明项目根目录和 .build,并设置 RECURSIVE = YES。如果原来的 INPUT 为空,只追加 .build 不会保留默认扫描当前目录的行为。
同时配置两个输入目录
如果 INPUTDIR 是指向项目根目录的环境变量,可以在 doxygen.cfg 中设置:
INPUT = "$(INPUTDIR)" "$(INPUTDIR)/.build"
RECURSIVE = YES
运行 Doxygen 的进程需要能够读取 INPUTDIR。Doxygen 使用 $(ENV_VARIABLE_NAME) 展开环境变量,路径含空格时应保留引号。配置语法说明
如果直接从项目根目录运行 Doxygen,也可以使用:
INPUT = . ./.build
RECURSIVE = YES
然后执行:
doxygen doxygen.cfg
. 指运行命令时的当前目录。INPUT 可以列出多个目录,RECURSIVE = YES 用于继续搜索子目录。官方入门指南
为什么追加后只看到 .build 的警告
Doxygen 在 INPUT 为空时会搜索当前目录,但当前目录并不是输入列表中已有的一项。如果原配置是:
INPUT =
再添加:
INPUT += $(INPUTDIR)\.build
有效输入列表就只包含 .build,不会自动补上项目根目录。如果原来的 INPUT 确实为空,这可以解释题述现象。INPUT 配置说明
如果原来已经明确列出了其他输入目录,还需要检查完整配置,不能仅凭警告范围认定这些目录已被移除。原问题没有提供 Doxygen 版本,也不能据此断言所有版本都以相同方式处理点号目录。
仍然漏文件时检查什么
Doxygen 会结合输入路径、文件匹配规则和排除规则决定处理哪些文件。官方 FAQ
- 检查
EXCLUDE和EXCLUDE_PATTERNS,确认没有排除.build或目标文件。 - 检查
FILE_PATTERNS。如果已经自定义匹配规则,应确保包含*.dox;需要追加时可使用FILE_PATTERNS += *.dox,同时保留其他所需扩展名。 - 确认生成文件在 Doxygen 启动前已经存在,并且输入路径实际指向预期目录。
验证时可以临时设置 QUIET = NO,查看运行输出中的扫描和解析信息。没有警告并不等于文件没有被处理。QUIET 配置说明
备注:内容仅供参考。
