プロジェクトが外部ライブラリやツールに依存している場合、Doxygenを実行するたびにそれらのソースをすべて含めない方が良い理由はいくつかあります。
外部パッケージとそのドキュメントの著作権が他の誰かにある場合、プロジェクトのドキュメントにコピーを含めるのではなく、それを参照する方が良い場合や、必須の場合さえあります。著者が再配布を禁止している場合、これは必須です。著者が再配布の前提条件として特定のライセンス条件の遵守を要求しており、あなたがそれらの条件に拘束されたくない場合、彼らのドキュメントのコピーを参照することが、コピーを含めることよりも望ましいです。
上記のいずれかに該当する場合、Doxygenのタグファイルメカニズムを使用できます。タグファイルは基本的に、外部ソースで見つかったエンティティのコンパクトな表現です。Doxygenはタグファイルを生成することも、読み取ることもできます。
プロジェクトのタグファイルを生成するには、設定ファイルのGENERATE_TAGFILEオプションの後にタグファイルの名前を指定するだけです。
1つまたは複数の外部プロジェクトの出力を自身のプロジェクトと組み合わせるには、設定ファイルのTAGFILESオプションの後にタグファイルの名前を指定する必要があります。
タグファイルには通常、Doxygenが実行された時点からのドキュメントの相対的な場所のみが含まれています。そのため、他のプロジェクトにタグファイルを含める場合、外部ドキュメントがこのプロジェクトに関連してどこにあるかを指定する必要があります。これは、設定ファイルのTAGFILES設定オプションの後に指定されたタグファイルに(相対的な)場所を割り当てることで行うことができます。相対パスを使用する場合、それはプロジェクトのHTML出力が生成されるディレクトリを基準とした相対パスである必要があります。つまり、プロジェクトのHTML出力ディレクトリから、リンク先の別プロジェクトのHTML出力までの相対パスとなります。
proj
というプロジェクトがあり、ext1
とext2
という2つの外部プロジェクトを使用していると仮定します。ディレクトリ構造は以下のようになります。<root> +- proj | +- html HTML output directory for proj | +- src sources for proj | |- proj.cpp +- ext1 | +- html HTML output directory for ext1 | |- ext1.tag tag file for ext1 +- ext2 | +- html HTML output directory for ext2 | |- ext2.tag tag file for ext2 |- proj.cfg Doxygen configuration file for proj |- ext1.cfg Doxygen configuration file for ext1 |- ext2.cfg Doxygen configuration file for ext2
OUTPUT_DIRECTORY = proj INPUT = proj/src TAGFILES = ext1/ext1.tag=../../ext1/html \ ext2/ext2.tag=../../ext2/htmlext1.cfg
OUTPUT_DIRECTORY = ext1 GENERATE_TAGFILE = ext1/ext1.tagext2.cfg
OUTPUT_DIRECTORY = ext2 GENERATE_TAGFILE = ext2/ext2.tag