コマンド一発で mrbgems 込みの mruby を作る

mruby の開発を楽にしようと mrb *1 というツールを作っています。
今回の 0.0.5 では、設定に合わせて mrbgems 込みの mruby を、コマンド一発でビルドできるようになりました。

以下のような YAML 形式で mruby のリポジトリの場所や一緒にビルドする mrbgems や toochain を設定し、mrb build <YAML ファイル名> とコマンドを実行します。
これだけの手順で mruby が出来上がります。設定ファイルの基本的なパラメーター名や階層は build_config.rb が元になっていますので、build_config.rb を使ったことがあるのなら比較的楽に作成できると思います。

mruby:
  github: 'mruby/mruby'
build:
  host:
    toolchain: gcc
    gembox: default
    gem:
      -
        github: 'iij/mruby-io'
      -
        github: 'iij/mruby-dir'

以下、コマンドの実行結果です。

$ mrb build my-mruby.yaml
Cloning into 'mruby'...
remote: Counting objects: 32345, done.
remote: Compressing objects: 100% (109/109), done.
remote: Total 32345 (delta 56), reused 0 (delta 0), pack-reused 32234
Receiving objects: 100% (32345/32345), 9.56 MiB | 1.94 MiB/s, done.
Resolving deltas: 100% (19729/19729), done.
Checking connectivity... done.
Buildding ...
Creating build_config.rb
ar: creating archive /Users/foo/tmp/mruby/build/host/lib/libmruby_core.a
ar: creating archive /Users/foo/tmp/mruby/build/host/lib/libmruby.a

あらかじめ決まった mruby を作成したい時やちょっとだけビルドの手間を省きたい時などに使えるかな、と思います。

次は、rbenv のように作成した mruby の切り替えができたらなと思っています。 あと設定ファイルのドキュメントも・・・。

*1:インストールは gem install mrb