Windows上でruby拡張を有効にする際のビルド方法が変更されました。
Posted on 2012-08-03Patch 7.3.620 によりWindows上でruby拡張を有効にする際のビルド方法が変更されました。
これまでは以下の様にRUBY_VERを指定する必要があり、このRUBY_VERはリンクライブラリのパスを決定するパラメータとして使用されていました。
nmake -f Make_mvc.mak GUI=yes IME=yes MBYTE=yes
ICONV=yes PERL=C:\strawberry\perl DYNAMIC_PERL=yes
PERL_VER=512 PYTHON=c:\python27 DYNAMIC_PYTHON=yes
PYTHON_VER=27 RUBY=c:\ruby192 DYNAMIC_RUBY=yes RUBY_VER=191
RUBY_VER_LONG=1.9.1 CSCOPE=yes MSVCVER=6.0 NETBEANS=yes
DEBUG=no
つまりrubyのAPIバージョンを指定していました。しかしこの値はvim内部でのrubyバージョンの扱いにも使用されており
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
の様なコードに影響を及ぼしていました。つまり、rubyのバージョンとAPIバージョンが混同して使われてきました。 今回の修正によって、今後はRUBY_VERはrubyのバージョンそのものを、またRUBY_VER_LONGにAPIのバージョンを指定する事になりました。
nmake -f Make_mvc.mak GUI=yes IME=yes MBYTE=yes
ICONV=yes PERL=C:\strawberry\perl DYNAMIC_PERL=yes
PERL_VER=512 PYTHON=c:\python27 DYNAMIC_PYTHON=yes
PYTHON_VER=27 RUBY=c:\ruby193 DYNAMIC_RUBY=yes RUBY_VER=19
RUBY_VER_LONG=1.9.1 CSCOPE=yes MSVCVER=6.0 NETBEANS=yes
DEBUG=no
実際には、RUBY_VER_LONGはその値を使ってincludeパスに使用したり、ドットを削除した値を用いてランタイムライブラリ(msvcrt-ruby193.dll)の名前を決定する材料としても使用されます。
これまでWindows上でruby拡張を有効にしてvimをビルドしてこられた方には以上の変更が必要となります。お気を付け下さい。
参考
もどる