Doxygen with Dot on Cygwin
Cygwin で doxygen を使うときに dot (graphviz) で図をつけるお話.
Windows 版 Graphviz をインストールして使うと,"Error: Could not read font : Helvetica" 言われて出来上がる図が変になるんですよ.Graphviz をソースからコンパイルして入れてみようとしたんだけど,X11/Cygwin とかとか何とか色々インストールしたあげく,結局エラーが出て止まったのでこの方法はパス.労力がかかりすぎ.
Doxygen で生成する dot ファイルを残しておいて,フォント名を Helvetica から Arial に書き換えて,図をもう一度作り直す,という方法を取る.処理が冗長になるけどまあいいや.楽な方法を.
Doxygen の設定ファイル(いまは doxygen.conf)で DOT_CLEANUP = NO (生成した dot ファイルを消さないで残しておく)にしておくこと.
#!/usr/bin/bash # HTML ドキュメントと dot ファイルの生成. doxygen doxygen.conf pushd . cd ./html # dot ファイルをバックアップしてフォント名を置換. echo "Convert fontname used in dot files." perl -p -i.bak -e 's/Helvetica/Arial/g' *.dot # 画像を作り直す. echo "Re Generate Images." for file in *.dot do echo "Generate Image from... " $file dot -Tpng $file > ${file%dot}png done # バックアップ等の削除. rm *.dot rm *.bak popd
ディレクトリ名とかは適当.クリッカブルマップの位置がずれるのが難点だなあ….Doxygen で最初から使うフォント名指定する方法はないものか.
参考
[追記]
Doxygen てちゃんと Windows 版出てるんだった.しかもそっちの方がバージョン新しいし.何をやってるんだろうね.それ使えって話でした.めでたしめでたし.