Doxygen 1.8.4 を使用しています。以前の Doxygen バージョン 1.7.1.2 では発生しなかった次の問題が見られます。
TestProject1 と TestProject2 の 2 つのプロジェクトを作成しました。
TestProject1
次のように、1 つのヘッダー ファイル XBO.h が含まれます。
/*! \brief XBO is boring */
namespace XBO {
/*! \brief XBONestedNS is also boring
*/
namespace XBONestedNS {
}
}
このファイルを doxygen で実行すると、ドキュメント ディレクトリに次のようなタグ ファイルが作成されます。
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile>
<compound kind="namespace">
<name>XBO</name>
<filename>namespaceXBO.html</filename>
<namespace>XBO::XBONestedNS</namespace>
</compound>
<compound kind="namespace">
<name>XBO::XBONestedNS</name>
<filename>namespaceXBO_1_1XBONestedNS.html</filename>
</compound>
<compound kind="dir">
<name>TestProject1</name>
<path>/abc1/users/someuser/userbranch/project/src/library/TestProject1/</path>
<filename>dir_a1513fb003dc8c1062e5770a29b83379.html</filename>
<file>XBO.h</file>
</compound>
</tagfile>
TestProject2
次のように、1 つのヘッダー ファイルが含まれます。
YBO.h
/*! \brief YBO is boring */
namespace YBO {
}
TestProject2 の makefile.doxygen では、TestProject1 の .tag ファイルが次のように参照されます。
@TAGFILES = $(DOXY_OUTPUT)/../TestProject1/TestProject1.tag=../TestProject1
TestProject2 の doxygen ファイルが作成されると、名前空間 XBO (TestProject1 から) が誤って TestProject2 の名前空間リストに含まれます。
つまり、プロジェクトが別のプロジェクトによって参照され、そのプロジェクトにネストされた名前空間が含まれている場合、最初のプロジェクトの最上位の名前空間 (つまり、名前空間がネストされている名前空間) が 2 番目のプロジェクトの doxygen ドキュメントに表示されます。