このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

その後のDoxygen

バグ

入力がシフトJISのせいだからかも知れないが、バグに出会っている。#define の認識が出来ない。色々試行錯誤しているが、いまのところ解決しない。Markdownのパージングでも謎のエラーがよく出る。

やはり、入力はUTF-8にすべきだと思う。事情があってそう出来ないのだが、一段落したら実験をしてみるつもりだ。シフトJISソースコードを全部UTF-8エンコーディングに変換して試してみる。ただし、プログラムのソースとしては文字列リテラルが壊れるのでダメになる。

後で試す/調べるために、バグが出るソースファイルを取っておかないとな。

mixed encodingの状況で使えたらいいのだが。全体で一律じゃなくて、ファイルごとのエンコーディング指定が出来ればいい。

日本語設定

大事なことを忘れていた。Doxyfileで、

OUTPUT_LANGUAGE        = Japanese

これで、出力文書の自動生成部分も日本語になる。

開発中とリリース版で

Doxyfileを分けたほうがいいかも知れない。

EXTRACT_PRIVATE        = YES

これとかは、リリースではNOにしたほうがいい。Doxyfile.rel, Doxyfile.devとか作って、Makefile内で切り替えるとか、かな。

グラフの描画

Doxyfileで、

HAVE_DOT               = YES

とすると、Graphviz dotを使って描画をする。グラフ関係の設定項目は、

$ grep _GRAPH Doxyfile
# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
CLASS_GRAPH            = YES
# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
COLLABORATION_GRAPH    = YES
# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
GROUP_GRAPHS           = YES
# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to

INCLUDE_GRAPH          = YES
# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
INCLUDED_BY_GRAPH      = YES
# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
CALL_GRAPH             = NO
# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
CALLER_GRAPH           = NO
# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
DIRECTORY_GRAPH        = YES
# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
DOT_GRAPH_MAX_NODES    = 50
# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs

# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
MAX_DOT_GRAPH_DEPTH    = 0