2

Doxygen では、次のコード構造があるとします。

foo/__init__.py
foo/bar.py

含むfoo/bar.py:

def meh():
  """@brief Some cool feature.

  More details...
  """
  print "Hello, world!"

およびfoo/__init__.py含む:

# Publicly expose "foo.bar.meh" as "foo.meh".
from foo.bar import meh

このスキームでは、構造的なコード レイアウトの理由から純粋mehに内部にあり、パブリック API のように表示される必要があります。foo.barfoo.meh

実際のこのスキームの例はos.path、多くの OS 固有の実装モジュールの 1 つからシンボルを公開する標準ライブラリからのものです (これはたまたまos.path.nt、たとえば利用可能です)。


このソース ツリーで Doxygen を実行すると、 as が取得mehされfoo.bar.meh、 as が取得できませんfoo.meh

mehコマンドを使用して明示的に修飾しようとしまし@fnたが、奇妙な警告が表示され、関数が出力されません。@classfor classes を使用すると、2 つのMehクラスがあり、1 つには簡潔で詳細なドキュメントがあり、もう 1 つにはメソッドと他のメンバーがある状況が作成されます。おそらく、Doxygen は@classディレクティブを別のモジュール内のクラスのドキュメントとして解釈し、特別なコメント ブロックに続くクラスにドキュメントを関連付けません。


Doxygen を使用して内部モジュール シンボルをパブリック パッケージ シンボルとして公開するにはどうすればよいですか?


記録として、これは非常に大規模な C++ と Python のハイブリッド コード ベースであり、(少なくとも短期的には) reStrcuturedText や Sphinx に変換することに興味がない大量の Doxygen コメントが含まれています。

4

0 に答える 0