mrubyをVisual C++でビルドしてみました-再び
久しぶりにmrubyのGitHubリポジトリを訪れたら、おやっ!ビルド・ツールが CMakeから Rake(minirake)に代わっているではないですか。早速、新しいファイルセットを取ってきて Visual C++ 2008*1でビルドして見ました。備忘ログしておきます。
以下の説明では、mrubyファイルセットのルート・フォルダをmruby_localとします。
必要なものを集めましょう
まず最初に、必要なツール類をネットから集めましょう。何はともあれ必要なのは、Rubyです。これがないとRakeでビルドできません。
- Ruby for windows => http://rubyinstaller.org/の"RubyInstaller 1.9.3-p385 released"
あたりの活きの良いのをダウンロードしてインストールします。おっと、Rubyがインストールされた binフォルダをPATHに追加するのを忘れないように!
その他に必要なものは、
- Bison ⇒ Bison for Windows の"Complete package, except sources"
- Gperf ⇒ Gperf for Windowsの"Complete package, except sources"
- stdint.h ⇒ http://code.google.com/p/msinttypes/downloads/list の"msinttypes-r26.zip"
です。BisonとGperfはインストーラー付きなので、ダウンロードしたファイルを実行してインストールします。stdint.hは、ダウンロードしたzipファイルを解凍して、取り敢えずmruby_local/includeにコピーします*2。
以上で準備完了です。
Rakeでビルドしよう
ビルドは、CMakeと比べると拍子抜けするほど簡単です。
まず、ビルド設定を修正します。mruby_local/build_config.rbをエディタで編集して、toolcainを"gcc"から"vs2012"に書き換えます。
# load specific toolchain settings toolchain :vs2012
あとは、コマンド・ウインドでおもむろに
> ruby ./minirake
を実行すると、あれよあれよとビルドが進みます。最後に
================================================ Config Name: host Output Directory: build/host Binaries: mruby, mrbc, mirb ================================================
というメッセージが表示されればビルドは成功です…たぶん(^^;>。途中、ワーニングがばらばらと出てきますが、気にしなくても良さそうです。出来上がった実行ファイルは mruby_local/build/binに格納されています。えっと、Windowsのバージョンによってはマニフェスト・ファイルが出力されるので、手作業でマニフェストを実行ファイルにマージするなり、はたまたmruby_local/tasks/toolchains/vs2012.rakeをいじくって*3対処するなりして下さい。
でも、ビルドが正しく出来ているかどうか心配ですよね。ご安心あれ、同梱の回帰テスト(?)で確かめることができます。コマンド・ウインドで
> ruby ./minirake test
を実行しましょう。ビルドが正常なら下記の様なメッセージが表示されます。
mrbtest - Embeddable Ruby Test This is a very early version, please test and report errors. Thanks :) ................................................................................ ................................................................................ ................................................................................ ................................................................................ ................................................................................ ................................................................................ ........................................ Total: 520 OK: 520 KO: 0 Crash: 0 Time: 4.000002 seconds
はい!お終い。
あとは windowsで素敵なmruby生活を満喫しましょう。