調べ物した結果

現役SEが仕事と直接関係ないことを調べた結果とか感想とか

Doxygenをインストールしてつかってみた(Windows)


目次

コードからドキュメントを生成できるのは喜ばしいこと。
ということでDoxygenインストールしてみました。

環境

OS:Windows10
解析対象:NAudio(https://github.com/naudio/NAudio

セットアップ

www.doxygen.jp
こちらのサイトより取得。サイト右端のダウンロードからWindows用のExeを取得します。
gyazo.com

doxygen-1.8.18-setup.exe」
gyazo.com

ダウンロード後にウィザードに従いインストールします。(数分)
私はとりあえず全部コンテンツをインストールしました。完了。

パスを通しておく。

インストールフォルダに対してパスを通しておきましょう。
gyazo.com
システム詳細設定から環境変数を選び
gyazo.com
Pathを選択した状態で編集
gyazo.com
Doxygen.exeのある階層を新規に追加します。(私はD~にインストールしたので画像の通りです)
gyazo.com

doxygen」とコマンドをたたいて下のように出ればOKです。
gyazo.com
GUIもあるようなのですが、マニュアルがコマンドベースだったのでCUIでいきました。

マニュアルに従って初期設定をしてきます。

マニュアル
http://www.doxygen.jp/starting.html

設定ファイルを生成

生成コマンド
doxygen -g

は省略可能で、省略した場合は「Doxyfile」という名前で設定ファイルができます。
gyazo.com
gyazo.com
ちゃんとできましたね。

実行

設定ファイルができあがるとすぐに実行できます。

doxygen <config-file>

で実行します。configファイルの名前は省略したので「doxygen Doxyfile」で実行です。
プロンプト画面をみて想像がついているかもしれませんが、作業ディレクトリはソースコードが格納されているルートディレクトリで
作業しています。設定を細かくすることで、任意の場所で操作することが可能のようです。
gyazo.com

出力フォーマットも選べます。私の場合設定がガバガバなので作業ディレクトリの直下にHTML形式で出力されます。
びっくりするほど素早く生成できたとおもいます。
gyazo.com

Index.htmlを開いてみます。
gyazo.com

速いもなにも。なにもありません。なぜでしょう。設定がガバガバだからです。
本文を引用しますと

少しの C/C++ ソースとヘッダーファイルからなる小さなプロジェクトでは、 INPUT タグは空のままにできます。この場合 doxygen はカレントディレクトリのソースを検索します。

ソースディレクトリまたはツリーからなる大きいプロジェクトの場合、 ルートディレクトリまたは複数ディレクトリを INPUT タグに指定し、1つ以上のファイルパターンを FILE_PATTERNS タグに追加します(例えば *.cpp *.h)。 パターンのうち1つとマッチするファイルだけが構文解析されます (パターンが省略された場合、ソース拡張子のリストが使われます)。

多少ならいけるけど、でかいならちゃんとINPUTタグ設定してね。と読み替えて問題ないように思えます。そうしましょう。

C#用にINPUTタグを編集する。

Doxyfileを編集します。エディタは自由にしてください。

このファイルで全動作の設定を行うようなので、デフォルトのままでもなかなかの行数があります。(2000行超え)
gyazo.com
目視で調べるのは得策ではないでしょう。ほしいのはFILE_PATTERNSタグなので、検索すると800行目にありました。
gyazo.com

INPUTはどのように設定するのでしょうか。ここもマニュアルをみてみましょう。
http://www.doxygen.jp/config.html#cfg_input
gyazo.com


さて。ここで問題が発生します。オプションをみても実際に実行してみてもディレクトリを再帰的には検索してくれないようです。
全部スペースで区切ってくっつけろとのことでしょう。大量のディレクトリをいちいち手打ちするのは面倒アンド面倒です。

2020/05/11 追記。 嘘つきました「RECURSIVE」オプションがちゃんとありました。ここをYESにすると再帰的に処理されます。ですよね!!!!

cmdでさくっととりあえず欲しい階層の一覧をゲットしましょう。

@echo off
set directory=D:\03_git\NAudio
for /d /r %directory% %a in (*) do (
 echo %a
) 

でいけます。derectoryのところはお好みで・・・
echoなのでずらっとでます。本当は半角スペースでcmdだけで一撃でやりたかったのですが、for関連の変数処理が理解できず。
gyazo.com
これをスプレッドシートにコピペして
gyazo.com
こんな感じでゴリッてつくりました。
gyazo.com
ずらーっとね。

再実行

さぁ、もう一回「doxygen 」で実行してHtmlを見てみます。
gyazo.com
gyazo.com

どうですかね。

最後

とりあえずうごきました。業務の方にももっていけるかもしれない。すでに使われているような可能性も・・・
が、なかなかCoolだと思います。使用感はマニュアルみてみないとですが。