先日、MSYSでGTK+ 2.24.10をビルドしました。
- MSYSでGTK+をビルド (2)
http://7shi.hateblo.jp/entry/2012/05/02/120012
このままでもGtk#のビルドはできますが、Gtk#のバイナリ配布物(GTK# for .NET 2.12.10)に含まれるのはGTK+ 2.16.6です。バージョンを合わせた方が何かと都合が良さそうなので、ビルドしてみました。
単純にGTK+を差し替えただけでは、文字の表示がおかしくなりました。Cairoのバージョンを下げなければいけないようです。正常動作が確認できたCairo 1.10.2をビルドします。
※ Cairo 1.12.2とは異なり、config.hに細工する必要はありません。
$ curl -LO http://www.cairographics.org/releases/cairo-1.10.2.tar.gz $ tar xvf cairo-1.10.2.tar.gz $ cd cairo-1.10.2 $ CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure $ make $ make install
GTK+ 2.16.6をダウンロードして展開します。
$ curl -LO http://ftp.gnome.org/pub/gnome/sources/gtk+/2.16/gtk+-2.16.6.tar.bz2 $ tar xvf gtk+-2.16.6.tar.bz2 $ cd gtk+-2.16.6
想定しているlibpngが古い(1.2)ため、1.5対応のパッチを当てます。エラー処理のsetjmp/longjmp周りが変更になっています。また、Objective-C++とWin32APIが干渉するため、Objective-C++を無効にするパッチも当てます。
JPEG 2000サポートはOpenJPEGではなくJasPerを使っています。今回はJPEG 2000を使う予定はないので無効にしてビルドしました。
$ ./configure --without-libjasper $ make $ make install
以上でビルドは完了です。
他のパッチ
文字表示がおかしい件を調査する際に、GTK+ 2.18.9もビルドして試しました。2.16.6と同じようにlibpngなどにパッチが必要だったため、参考までに置いておきます。