diff options
| -rw-r--r-- | lib/mruby/build.rb | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/mruby/build.rb b/lib/mruby/build.rb index d6eabd79e..a79732802 100644 --- a/lib/mruby/build.rb +++ b/lib/mruby/build.rb @@ -320,12 +320,16 @@ EOS return @mrbcfile if @mrbcfile gem_name = "mruby-bin-mrbc" - gem = @gems[gem_name] - gem ||= (host = MRuby.targets["host"]) && host.gems[gem_name] - unless gem - fail "external mrbc or mruby-bin-mrbc gem in current('#{@name}') or 'host' build is required" + if (gem = @gems[gem_name]) + @mrbcfile = exefile("#{gem.build.build_dir}/bin/mrbc") + elsif !host? && (host = MRuby.targets["host"]) + if (gem = host.gems[gem_name]) + @mrbcfile = exefile("#{gem.build.build_dir}/bin/mrbc") + elsif host.mrbcfile_external? + @mrbcfile = host.mrbcfile + end end - @mrbcfile = exefile("#{gem.build.build_dir}/bin/mrbc") + @mrbcfile || fail("external mrbc or mruby-bin-mrbc gem in current('#{@name}') or 'host' build is required") end def mrbcfile=(path) |
