|
From: Masao M. <mu...@hi...> - 2005-10-05 15:40:46
|
須藤さん
むとうです。
Ruby/CairoのWin32向けextconf.rbパッチを送ります。
あと、dependファイルもつけましたのでextconf.rbと
同じディレクトリに置いてください。make installで
rb_cairo.hが適切な場所にインストールされるようになります。
で、須藤さんの修正とこのパッチで、無事、Ruby/GTK
とのリンクもうまくいきました。
Cygwin・MSVC+で試しました。案外あっさり。
#mingwは試してませんが...。
ポイントとしては、
生成されるcairo.libというファイル名がc:\gtk\lib\cairo.lib(cairo本体のlib)
とバッティングしてしまうことから、Ruby/GTK側でうまく
rcairoのシンボルを見つけられない(c:\gtk\lib\cairo.libの方を
見てしまう)という問題に対応するために、生成される.lib
ファイル名をlibruby-cairo.libという名前になるようにしてい
ます(cygwin, mingwの場合はlibruby-cygwin.a)。
この問題は、本来、Ruby-GNOME2でも存在するのですが
GTK+なライブラリたちはglib-2.0.libのようにバージョン
付になっている(一方、Ruby-GNOME2側はglib2.lib)ため、
偶然バッティングが起きずに問題となっていませんでした。
なので、Ruby-GNOME2側でも同様の対処とするように
mkmf-gnome2.rb側も修正を入れています。
それから、ちょっと以下の行だけ、失念してました。
$defs << "-DRUBY_CAIRO_PLATFORM_WIN32"
このパッチでそのまま動くと思いますが、また明日にでも確認してみます。
あと、setup.rbのほうですが、結果は以下のような感じです。
こちらは追えていません。
C:\test\dev\rcairo>ruby setup.rb config
Processing the package `cairo' ...
---> lib
<--- lib
---> ext
c:/ruby/bin/ruby C:/test/dev/rcairo/packages/cairo/ext/extconf.rb
setup.rb:656:in `command': system("c:\\ruby\\bin\\ruby" "C:/test/dev/rcairo/
packages/cairo/ext/extconf.rb") failed (RuntimeError)
from setup.rb:661:in `ruby'
from setup.rb:1237:in `extconf'
from setup.rb:1233:in `config_dir_ext'
from setup.rb:1498:in `__send__'
from setup.rb:1498:in `traverse'
from setup.rb:1496:in `dive_into'
from setup.rb:1496:in `traverse'
from setup.rb:1490:in `exec_task_traverse'
... 8 levels...
from setup.rb:827:in `__send__'
from setup.rb:827:in `invoke'
from setup.rb:774:in `invoke'
from setup.rb:1544
--
.:% Masao Mutoh<mu...@hi...>
|