2015年3月2日月曜日

x11-toolkits/libgdiplus のビルドの問題が解決

Monoを3.10.0に更新中 #2」の記事で書いた、x11-toolkits/libgdiplus の問題は、数日前にPortsをアップデイトしたら、files/patch-src_gifcodec.c のパッチが追加されていて解決しました(万歳!)。

ただし、そのままコンパイルしてしまうと、XOpenDisplay()等の関数を呼び出してしまうので、Xをインストールしていない環境では、OpenSim起動時にエラーになってしまいます。
この為、次のMakefile.localと、files/patch-src_general.c を  x11-toolkits/libgdiplus のディレクトリに追加してビルドします(昔の記事には、このパッチを載せてなかったみたい...そのうちちゃんとまとめねば....)。
ただし、これはXをインストールしていない環境で無理やりOpenSimを動かすためのものなので、Xが存在する環境では、この作業はしないでください。libgdiplus を使う他のアプリケーションに悪影響がでる可能性があります。

Makefile.local

#
# Makefile.local  --- Local settings for OpenSIM
#

.if defined(WITHOUT_X11)
CFLAGS+=        -DWITHOUT_X11
MAKE_ARGS+=     'SUBDIRS=src'
.endif

files/patch-src_general.c

--- src/general.c.orig  2011-01-13 22:28:19.000000000 +0000
+++ src/general.c       2012-08-27 07:31:08.000000000 +0000
@@ -132,6 +132,9 @@

                dpis = h_dpi;
                return dpis;
+#elif defined(__FreeBSD__) && defined(WITHOUT_X11)
+               dpis = 96.0f;
+                return dpis;
 #else
                char *val;
これで、Portsを最新にしても、OpenSimを動かすことができるようです。