Doxygen with Dot on Cygwin

Cygwindoxygen を使うときに dot (graphviz) で図をつけるお話.

WindowsGraphviz をインストールして使うと,"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 版出てるんだった.しかもそっちの方がバージョン新しいし.何をやってるんだろうね.それ使えって話でした.めでたしめでたし.