我如何在 Doxygen 配置中使用相对路径名

How can i use relative path names in Doxygen configuration

我的 doxygen 在我的 /utils 目录中,我的源代码在根目录中的另一个目录中 (/code_with_doxygen),我怎么能为它创建一个相对路径名,因为它在一个存储库中,它将在其他计算机上的不同位置。我无法记录整个根目录,因为我不想构建目录 /code_without_doxygen

项目树如下所示:

root
    utils
    code
        code_with_doxygen
        code_without_doxygen
    documentation

现在我有设置,但似乎不起作用:

FULL_PATH_NAMES        = YES
STRIP_FROM_PATH        = ../

我似乎无法弄清楚:Relative files paths in doxygen-generated documentation

相对路径取决于您从哪个目录执行doxygen。例如,如果您有以下项目树:

+ project_root
     + documentation
         + config
             - doxyfile
         + pictures
         + output
         - run_doxygen.bat
     + code
         + code_with_doxygen
         + code_without_doxygen

在这种情况下,所有相对路径的根目录都位于文件夹 "documentation" 中,因为您是来自该文件夹的 运行 脚本 "run_doxygen.bat"。因此,您可以将 "doxyfile" 中的 INPUT 标记设置为

INPUT = ./../code

和 doxyfile 中的 OUTPUT_DIRECTORY 标签到

OUTPUT_DIRECTORY = ./output

令人误解的是,即使 doxyfile 在子文件夹中 "config",路径也不是相对于 doxyfile 的位置,因为路径是相对于调用 doxygen 的位置。在本例中,它是文件夹 "documentation",因为这是调用 doxygen 的脚本的位置。

Doxygen 允许将文件包含到 doxyfile 中。您可以在实际调用 doxygen 之前使用脚本生成一个文件。该文件的内容必须如下所示:

INPUT += path1
INPUT += path2
...

您似乎 运行 Linux,我不知道正确的 bash 命令。

该文件必须集成到您的 doxyfile 中:

INPUT = (project path)
@INCLUDE = generated filename

这将导致 doxygen 使用您生成的文件的内容。

@gmug 是对的。不要忘记在代码中添加注释块,如 specified by doxygen 对于 python 我需要添加:"""@package docstring""" 在文件的开头。

通过将 INPUT 设置为一个字符串或一组字符串,我已经能够在我的 doxygen.cfg 文件中使用相对路径。例如:

INPUT                  = "." "src"

将告诉 doxygen 查看当前目录及其子目录,$HERE/src.