summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/mruby/build/load_gems.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/mruby/build/load_gems.rb b/lib/mruby/build/load_gems.rb
index b2b185f05..28811e8ec 100644
--- a/lib/mruby/build/load_gems.rb
+++ b/lib/mruby/build/load_gems.rb
@@ -15,10 +15,14 @@ module MRuby
def gem(gemdir, &block)
if gemdir.is_a?(Hash)
gemdir = load_special_path_gem(gemdir)
- elsif GemBox.path && gemdir.is_a?(String)
+ elsif GemBox.path
gemdir = File.expand_path(gemdir, File.dirname(GemBox.path))
else
- gemdir = File.expand_path(gemdir, MRUBY_ROOT)
+ caller_dir = File.expand_path(File.dirname(caller(1,1)[0][/^(.*?):\d/,1]))
+ if caller_dir == "#{MRUBY_ROOT}/build_config"
+ caller_dir = MRUBY_ROOT
+ end
+ gemdir = File.expand_path(gemdir, caller_dir)
end
gemrake = File.join(gemdir, "mrbgem.rake")