web-dev-qa-db-ja.com

Doxygenのカスタムタグ

Doxygenを使用してカスタムタグを作成する方法があるかどうかを調べようとしています。 ALIAS構成ファイルオプションを見つけましたが、それは私が必要としていることを正確には行いません。基本的に私のコードでは、次のようなものを記述できるようにしたいと考えています。

/// \req Requirement #322 - blah blah

次に、このカスタムタグを持つ行の\bugおよび\todoコマンドの場合と同様に、Doxygenにリストを作成させます。これはDoxygenで可能ですか?

37
RishiD

\bug\todoの一般化は\xrefitemです。

私が提案する解決策は次のとおりです。

  • doxyfileの場合:

    ALIASES += "req=\xrefitem req \"Requirement\" \"Requirements\" "
    
  • 文書化されたコード:

    /// \req #42 - The system shall work in any situation
    
44
mouviciel

Mouvicielに感謝します!私はあなたのソリューションを採用し、私の目的のためにそれを拡張しました。

以下のテキストは私のDoxyfileに入ります:

ALIASES += req{1}="\ref SRTX_\1 \"SRTX-\1\" "
ALIASES += satisfy{1}="\xrefitem satisfy \"Satisfies requirement\" \"Requirement Implementation\" \1"
ALIASES += verify{1}="\xrefitem verify \"Verifies requirement\" \"Requirement Verification\" \1"

ここで、SRTXは私のプロジェクトの名前であり、要件のプレフィックスとして使用されます。

次に、要件管理ツール(私の場合は課題追跡システム)で要件IDと要件のURLの間のリンクを提供するRequirements.doxというファイルを作成します。

/**
@page Requirements

@section Build1

@anchor SRTX_1113
<a href="https://foo.bar.com/Mantis/view.php?id=1113">SRTX-1113</a>

@anchor SRTX_1114
<a href="https://foo.bar.com/Mantis/view.php?id=1114">SRTX-1114</a>

*/

外部ソースにリンクする必要がない場合は、要件のテキストをアンカータグに入れることもできます。

私のコードには次のものがあります。

/**
 * This is the basic executive that schedules processes.
 * @satisfy{@req{1114}}
 */
class Scheduler: public Process
{
    ...
}

そして私のテストでは:

/**
 * Provide a number of tests for process scheduling.
 * @verify{@req{1114}}
 */
class Scheduler_ut : public CppUnit::TestFixture
{
    ...
}

これにより、要件、要件の実装、および要件の検証に関する関連ページが表示されます。また、要件を満たし、クラスの説明(または関数-タグを配置する場所)の要件セクションを確認します。

21
Daniel

上記の2つの答えを組み合わせると、相互参照を構築する単一のクリーンな要件タグを持つことができます-参照テーブル、および、ドキュメント内の要件リポジトリへの直接リンクも提供します。

Doxygen CONFIGファイル:

エイリアス= "requirement{1}=@xrefitem requirement \"Requirements\" \"Requirements Traceability\" <a href=\"http://your.requirementtool.com/browse/\1\">\1</a>"

ソースコード:

@requirement{REQ-123}この要件項目の簡単なテキスト要約

これはドキュメントで次のようにレンダリングされます:

要件:

  • REQ-12 この要件項目の簡単なテキスト要約
3
Jay