排除Doxygen的目录

Tho*_*ews 41 doxygen

我想Doxygen忽略,绕过,而不是搜索我项目的以下目录:

*/.svn/*
*/docs/*
*/Properties/*
*/bin/*
Run Code Online (Sandbox Code Playgroud)

根据Doxygen FAQ:

How can I exclude all test directories from my directory tree?

Simply put an exclude pattern like this in the configuration file:

EXCLUDE_PATTERNS = */test/*
Run Code Online (Sandbox Code Playgroud)

所以,我的Doxygen文件看起来像这样:

# If the value of the INPUT tag contains directories, you can use the 
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
# certain files from those directories. Note that the wildcards are matched 
# against the file with absolute path, so to exclude all test directories 
# for example use the pattern */test/*

EXCLUDE_PATTERNS       = */.svn/* \
                         */docs/* \
                         */published/* \
                         */bin/* \
                         */obj/*
Run Code Online (Sandbox Code Playgroud)

Doxygen的输出是:

Searching for include files...
Searching for example files...
Searching for images...
Searching for files in directory c:/Test_Fixtures/pc_application/docs
Searching for files in directory c:/Test_Fixtures/pc_application/docs/.svn
Searching for files in directory c:/Test_Fixtures/pc_application/docs/.svn/prop-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/.svn/props
Searching for files in directory c:/Test_Fixtures/pc_application/docs/.svn/text-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/.svn/tmp
Searching for files in directory c:/Test_Fixtures/pc_application/docs/.svn/tmp/prop-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/.svn/tmp/props
Searching for files in directory c:/Test_Fixtures/pc_application/docs/.svn/tmp/text-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/.svn
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/.svn/prop-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/.svn/props
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/.svn/text-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/.svn/tmp
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/.svn/tmp/prop-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/.svn/tmp/props
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/.svn/tmp/text-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/search
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/search/.svn
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/search/.svn/prop-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/search/.svn/props
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/search/.svn/text-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/search/.svn/tmp
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/search/.svn/tmp/prop-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/search/.svn/tmp/props
Searching for files in directory c:/Test_Fixtures/pc_application/docs/html/search/.svn/tmp/text-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/rtf
Searching for files in directory c:/Test_Fixtures/pc_application/docs/rtf/.svn
Searching for files in directory c:/Test_Fixtures/pc_application/docs/rtf/.svn/prop-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/rtf/.svn/props
Searching for files in directory c:/Test_Fixtures/pc_application/docs/rtf/.svn/text-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/rtf/.svn/tmp
Searching for files in directory c:/Test_Fixtures/pc_application/docs/rtf/.svn/tmp/prop-base
Searching for files in directory c:/Test_Fixtures/pc_application/docs/rtf/.svn/tmp/props
Searching for files in directory c:/Test_Fixtures/pc_application/docs/rtf/.svn/tmp/text-base
Run Code Online (Sandbox Code Playgroud)

这清楚地表明EXCLUDE_PATTERNS不起作用.我还将EXCLUDE选项设置为:

# The EXCLUDE tag can be used to specify files and/or directories that should 
# excluded from the INPUT source files. This way you can easily exclude a 
# subdirectory from a directory tree whose root is specified with the INPUT tag.

EXCLUDE                = ../.svn \
                         ../docs \
                         ../published \
                         ../docs/.svn \
                         ../docs/.svn
Run Code Online (Sandbox Code Playgroud)

哪个也不起作用.

因此,100000美元的问题是:如何使Doxygen排除,绕过,忽略,保持清除指定的目录或文件夹(最好是有效的东西)?

我在64位CPU平台上使用Windows 7上的Doxygen Wizard,以及Doxygen 1.7.3.

Edu*_*ual 41

请注意,通配符与具有绝对路径的文件匹配

所以,只需使用绝对路径进行排除;)

PS:顺便说一下,我已经挣了很多次.关于doxyfile的评论的这一小提及似乎经常被忽视.

哎呀,我错过了你已经尝试过的细节.也许这是多行值的问题:尝试使用空格作为分隔符来内联所有路径.那个(加上绝对模式)在我最近使用doxygen的几个系统上已经足够了.


我做了一些更深入的测试,还看了一下doxyfile的文档.正确的语法是使用空间进行分离.如果您真的想要多线,支持和记录的语法将是:

EXCLUDE_PATTERNS       = */.svn/*
EXCLUDE_PATTERNS      += */docs/*
EXCLUDE_PATTERNS      += */published/*
# and so on
Run Code Online (Sandbox Code Playgroud)

另外,仔细看看排除模式是如何工作的:包含目录本身,然后将根据排除模式测试其中的所有内容(因为它将始终匹配),在每个文件的基础上排除.

所以仔细看看你的输出:这些Searching for files in directory行应该在那里(doxygen将搜索目录,但在其上找不到任何内容,因为所有内容都被排除在外); 你在这些目录中获取Parsing code for fileGenerating docs for获取任何内容吗?如果你没有得到任何这些,这意味着一切正常(搜索目录,但不包括任何内容).如果确实包含了文件,请+=尝试使用空格分隔或语法.我在文档上看不到任何内容,甚至暗示你的\语法可行(当然,我可能忽略了一些东西).

  • 不幸的是,它仍然在每个 .svn 文件夹下的所有子文件夹中搜索。我认为这是不对的,排除父母应该自动排除所有孩子(甚至不搜索他们)。有没有办法排除 Doxygen 搜索的所有 .svn 文件夹和子文件夹? (2认同)
  • @noisefree:我是反过来做的。我关闭了 doxygen 中的递归搜索,并指定了它应该扫描的目录。因为我只有基本目录和包含目录,所以它只需要两个条目。如果您要扫描很多目录和子目录,则可能无法正常工作。 (2认同)
  • **2021 更新:** 虽然当时可能是一个很好的答案,但当前跨行指定多个值的方法只是在每行末尾放置一个反斜杠 \。不需要多个`EXCLUDE_PATTERNS` 或`+=`。我尝试了上面的操作然后使用了 GUI 并注意到当它后来保存我的项目(带有其他更改)时,它已经用前面提到的行为替换了上面的答案 (2认同)