Doxygen もっと日本語対応  2013-09-13
詳細文書だけでなく関数名やクラス名も日本語対応にする改良です
 全て ファイル ページ
Doxygen をビルドするためのメモ

ビルドするためにはいろいろ用意する必要がありますが、こと Windows ではめんどうくさいです。

Visual Studio 2010 では現状ビルドできません。2008 ならできるそうですが、日本語環境でできるのかどうか。 2008 から 2010 用に変換を試みても Unix 系の外部ツールを呼び出す部分に何か問題があるらしく、うまく動作しません。2012 でも同様と思われます。

私は MinGW (+ MSYS) でビルドしました。この場合、別途必要になるのは perl, bison, flex, libiconv です libiconv は GnuWin Packagesから入手してください。標準の設置先が C:\Program Files になっていますが、あらかじめ別のところにインストールしておくか、コマンドラインから mklink /d でもって別のパスを与えるかするとよいでしょう。そうでないと doxygen 側の sh ./configure の処理が空白込みパスに対応していないためビルドできません。perl については私は Active Perl を使いました。

bison と flex については GnuWin Package のそれが古すぎるそうで、リンク先にあるとおりビルド済みバイナリを別のところから取得してください。バイナリはファイル名から win_ を除いておくのがいいでしょう。

Doxywizard もビルドするなら Qt 4.x も必要です。Qt 5.x には未対応である点にご注意ください。また make test を走らせる場合は Python 2.x ( 3.x は未対応 )と xmllint が必要です。 xmllint は libxml2 のソースコードからビルドする必要があります。あちこちで Windows用の xmllint バイナリが公開されているように見えますが、依存している iconv の方が大幅に構成が変わったためにまともに動作しないようでして。実は現状でも libxml2 を完全にビルドするには何かしら障害があるようですが、ちょいちょいと修正していけば必要な xmllint のビルドまでは何とかたどり着けます。

sh ./configure の代わりに sh ./configure --with-doxywizard を実行しておくと make だけで本体と doxywizard の両方をビルドできますが、存外余計なお世話になることも多いので sh ./configure の状態から makemake doxywizard を分けて使う方が良いでしょう。

MinGW + MSYS で sh ./configure --static を実行していても、実行ファイルの動作には各種のDLLが必須となってしまいます。Qt やその他のライブラリもソースコードから静的ビルドを行う必要があるのかもしれません。私が何か思い違いをしている可能性もありますが。

Gnu patch もあるとよいのですが、これは独自にビルドされているGNU patch 2.5.4 (Win32 版)のほうがよさそうです。patch も用意せよ、というのは Git のパッチ受付処理が特殊な UnifiedDiff ファイルしか処理できないからです。一般の UnifiedDiff ファイルを用意して、確認のために云々というときに patch が必要になります。

また付属の patch.diff は TortoiseGit や Git では適用できません。前述の patch が必須となります。patch ご利用の際は -p1 オプションを忘れずに。

外部ファイルに書かれた環境設置用バッチファイルを MinGW 環境で使う方法は source 当該バッチファイル 。バッチファイルを直に呼び出しても環境変数の変更はその中でだけしか有効になりません。また、環境変数の定義自体も export 命令を使う必要があります。これらは Unix 共通なのでそっち方面で調査してください。

以前書いていた Bug 704971 に書いた rm コマンドで止まる件は現在の origin/master では修正されています。

src/qtools にあるのは Qt 2.x 時代のもの(を適宜手を加えたもの)のようです。doxygen 本体のビルドについてはこちらが使われています。doxywizard はビルドの前提となる Qt 4.x 側のそれを用いているようです。

TortoiseGit と Git は別にインストールと更新が必要です。意外と時々ハマる。

ファイル名を日本語のままにしておく本作独自のオプションはディレクトリ名には適用されません。 dir_ の後ろに続いているのはディレクトリ名から作った MD5 ハッシュ文字列のようです。 どういうわけでこのような仕様になっているのか不明ですが、履歴としては次の通り。

*. src/dirdef.cpp に escapeDirName という名の関数が次の時点で追加された(当時は subversion) *. 2005-09-19 SHA-1: ba7233b1be8545e619d80a62dd274521392fbe1f *. その後 encodeDirName に改名され、さらに現在の MD5 仕様に変更された *. 2005-10-11 SHA-1: c9ed38abcef60f4ecb9fc08a1ddd936762d5342c