summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--lib/mruby/build.rb14
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)