【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

MSYSでGTK+をビルド (3)

先日、MSYSでGTK+ 2.24.10をビルドしました。

このままでも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などにパッチが必要だったため、参考までに置いておきます。