web-dev-qa-db-ja.com

Doxygenのディレクトリを除外する

私のプロジェクトの次のディレクトリを検索せずに、Doxygenを無視、バイパス、したい:

*/.svn/*
*/docs/*
*/Properties/*
*/bin/*

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/*

したがって、私の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/*

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

これは、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

どちらも機能していません。

したがって、100,000米ドルの質問は次のとおりです。指定したディレクトリまたはフォルダ(できれば機能するもの)をDoxygenで除外、バイパス、無視、回避する方法を教えてください。

私はDoxygen Wizard on 64-bit CPU platform on Windows 7、およびDoxygen 1.7.3を使用しています。

44
Thomas Matthews

ワイルドカードは絶対パスのファイルと照合されることに注意してください

したがって、除外には絶対パスを使用してください;)

PS:ちなみに、私は何度も苦労してきました。 doxyfileのコメントに関するこの小さな言及は、あまりにも頻繁に気付かれないようです。

おっと、あなたがすでに試した詳細を逃しました。多分それは複数行の値の問題です:セパレーターとしてスペースだけを使用して、すべてのパスをインライン化してみてください。私が最近doxygenを使用しているいくつかのシステムでは、これ(および絶対パターン)で十分です。


私はいくつかのより深いテストを行い、またdoxyfileのドキュメントをもう一度見ました。正しい構文は、分離にスペースを使用しています。本当に複数行にしたい場合、サポートおよび文書化された構文は次のようになります。

EXCLUDE_PATTERNS       = */.svn/*
EXCLUDE_PATTERNS      += */docs/*
EXCLUDE_PATTERNS      += */published/*
# and so on

また、除外パターンがどのように機能するかを詳しく見てみましょう。ディレクトリ自体が含まれている場合、ディレクトリ内のすべてが除外パターンに対してテストされ、(常に一致するため)ファイルごとに除外されます)ファイルベース

したがって、出力を詳しく見てみましょう:Searching for files in directory行があるはずです(doxygenはディレクトリを検索しますが、すべてが除外されているため、そこには何も見つかりません)。 Parsing code for fileまたはGenerating docs forこれらのディレクトリのコンテンツのどれか?これらのいずれも得られない場合、これはすべてが正常に機能していることを意味します(ディレクトリは検索されますが、そこには何も含まれていません)。ファイルが実際に含まれている場合は、スペース区切りまたは+=構文を試します。私はあなたの\構文が機能する可能性があります(もちろん、私は見落としている可能性があります)。

41
Edurne Pascual

なお、doxygenを使用すると、同様の現象が見られます。ただし、それはツールがサンプルファイルと画像を検索するときに発生します。

Searching for example files...
Searching for files in directory .../wpkg/mainline/documentation
Searching for files in directory .../wpkg/mainline/documentation/.svn
Searching for files in directory .../wpkg/mainline/documentation/.svn/prop-base
[...]
Searching for images...
Searching for files in directory .../wpkg/mainline/documentation
Searching for files in directory .../wpkg/mainline/documentation/.svn
Searching for files in directory .../wpkg/mainline/documentation/.svn/prop-base
[...]

EXCLUDE_PATTERNSを設定して、.svnサブディレクトリを無視します。これはdoxygenのバグだと思います。例や画像をスキャンするときに、これらの除外をチェックする必要があります。

また、画面上のすべてのディレクトリを印刷するように見えますが、使用する前にそれらを適切に無視し、除外パターンをチェックします。しかし、それは単なる推測です。それはここで機能する方法だと誰かが言っているようですが:

http://doxygen.10944.n7.nabble.com/EXCLUDE-DIRECTORY-PATTERN-td2185.html

2
Alexis Wilke

Doxygenを除外、バイパス、無視、指定されたディレクトリまたはフォルダー(できれば機能するもの)に近づけないようにするにはどうすればよいですか?

INPUT構成オプションを使用してください!

INPUT = src other_folder README.md

言及 のように、除外パターンは引き続きディレクトリ内のファイルを考慮し、正規表現に一致するファイルに基づいてそれらを解析しません。検討するフォルダーとファイルを指定すると、最初からフォルダーを検索しないという望ましい結果が得られ、生成時間を大幅に改善できます。

これはEXCLUDEディレクティブを空にする必要があることに注意してください。そうしないと、検索が行われます。