macOS で mruby をやるための手順。
mruby が依存するツールを入れる。 See: https://github.com/mruby/mruby/blob/master/doc/guides/compile.md#prerequisites
xcode 入れて Ruby を入れたらだいたい動くと思う。
mrbgem-template
を入れる。
See: https://udzura.hatenablog.jp/entry/2019/10/02/190313
$ brew tap mrbgems/mrbgem-template
$ brew install mrbgem-template
$ mrbgem-template --license MIT --github-user genya0407 --mruby-version 3.0.0 --bin-name my_bin_name myapp
$ cd myapp
# gem の追加
$ vim .travis_build_config.rb
$ cat .travis_build_config.rb
MRuby::Build.new do |conf|
toolchain :gcc
conf.gembox 'default'
conf.gem File.expand_path(File.dirname(__FILE__))
conf.enable_test
# こういう感じで gem を指定する
conf.gem github: 'jbreeden/mruby-sqlite'
conf.gem mgem: 'mruby-iijson'
if ENV['DEBUG'] == 'true'
conf.enable_debug
conf.cc.defines = %w(MRB_ENABLE_DEBUG_HOOK)
conf.gem core: 'mruby-bin-debugger'
end
end
# 開発
$ vim mrblib/mrb_myapp.rb # Ruby でコード書くときはここに書く
$ vim mrblib/new_file.rb # mrblib 以下の適当なファイルに Ruby のコードを書いてもロードされるぽい
$ vim src/mrb_myapp.c # C でコード書きたいときはここに書く
# ビルド
$ rake # コンパイルが走る
$ ./mruby/build/host/bin/my_bin_name # バイナリが動く
mrb_float_value()
みたいなやつを使いたくなることはよくある。
そういうときは、ここを見ればだいたい書いてある: https://mruby.org/docs/api/headers.html
brew install libhogehoge
など
.travis_travis_build_config.rb
に以下のような感じで書き加える。
ここはプラットフォーム依存になるので、いろんなOSで動かしたければいい感じに build_config.rb を差し替えたり、 uname
の値を元に分岐したりする必要がある。
MRuby::Build.new do |conf|
...
# include <hogehoge.h> が通るようにする
conf.cc.include_paths << '/opt/homebrew/include/hogehoge'
# リンクできるようにする
conf.linker.library_paths << '/opt/homebrew/lib'
conf.linker.libraries << 'hogehoge'
...
end
普通にビルドすれば良い
$ rake
たぶん https://github.com/luisbebop/mruby-polarssl を参考にしたらできそう。
- 抱き込む対象のライブラリを submodule で git 管理下に置く
- build_config.rb をいい感じにする
でたぶんいける。