RubyCocoa 最近のコミット 2013-10-07
git svn dcommit忘れてたのでまとめて。
- String#readでarrayを期待してるところでString#readlinesを使うように (r2428)
ぶっちゃけruby-2.0で試してたらエラーになったので直した。テストなんかでrequire_relativeに直す必要があるところもあるんだけど、そっちはどう対処するか決められなかったので保留。
ruby.hの場所を指示する--ruby-header-dirが既にあるんだけど、config.hの場所を指定するオプションを追加。これも2.0対応の準備ではあるんだけと、次の作業とも関係して今回コミットした。
(10/8 追記)ちょっと説明を加えると、ruby-1.8系ではruby.hとconfig.hは同じ場所に配置されるが、1.9以降ではそうではない。
extconf.rbでmkmf.rbをrequireしたときに、mkmfの中でruby.hとconfig.hの存在を確認してるんだけど、SDKを使うときにそこがうまく指示されてなかったので
mkmf.rb can't find header files for ruby
というエラーが出てしまうケースがある。その対応。コンパイル自体は-isysrootをCFLAGSに設定していたので問題はないものの、指定したSDKとコンパイルを実行する環境で同じ場所にruby.hとconfig.hを置いてないと上記のエラーになってしまう。
変更内容としては
- require 'mkmf'する前に、グローバル変数$top_srcdir(ruby.h)と$topdir(config.h)を設定してやる
- configで設定された--sdkroot, --ruby-header-dir, --ruby-archheader-dirをextconf.rbに渡す
- Mac OS X 10.8以降は--sdkrootの利用をデフォルトに
といったもの。最後はなくてもいいんだけど、確認ついでにそうすることにした。