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
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
ずらーっとね。
最後
とりあえずうごきました。業務の方にももっていけるかもしれない。すでに使われているような可能性も・・・
が、なかなかCoolだと思います。使用感はマニュアルみてみないとですが。