mgemは、 mgem:
指定にしても github:
指定にしても基本的にgitリポジトリをチェックアウトして持ってくるようになっている。なので、チェックアウトした段階でのリビジョンが知りたいことがある。
build_config.rb
に以下のようなモンキーパッチを書いておくと、
module MRuby module HookGemRevision def gem(gemdir, &block) gem = super(gemdir, &block) if File.exist? gem.dir + "/.git" print "#{gem.name}: revision=" sh "git --git-dir #{gem.dir}/.git rev-parse HEAD" end gem end end class Build include HookGemRevision end end MRuby::Build.new do |conf| toolchain :gcc # ... end
その時点でチェックアウトしている mgem のリビジョンを(可能な場合に)表示してくれて便利かもしれない。
$ rake cd mruby && MRUBY_CONFIG=/Users/udzura/.ghq/github.com/udzura/mruby-argtable/build_config.rb rake all mruby-argtable: revision=d0077ef2504be4cb3ae8e855dfe88a532fb6997b mruby-dir: revision=0c3c538855dd15208d34fee96b13675e564bb4b6 CC src/array.c -> build/host/src/array.o CC src/backtrace.c -> build/host/src/backtrace.o CC src/class.c -> build/host/src/class.o CC src/codedump.c -> build/host/src/codedump.o CC src/compar.c -> build/host/src/compar.o CC src/crc.c -> build/host/src/crc.o ...
(コアにこんな感じの機能が入ってもいい気がするが、どういうやり方があるか考え中...)