summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--lib/mruby/build.rb21
1 files changed, 14 insertions, 7 deletions
diff --git a/lib/mruby/build.rb b/lib/mruby/build.rb
index b9f26d49f..77decad6d 100644
--- a/lib/mruby/build.rb
+++ b/lib/mruby/build.rb
@@ -131,15 +131,22 @@ module MRuby
end
MRuby::Build.current = current
- current.instance_eval(&block)
- if current.libmruby_enabled? && !current.mrbcfile_external?
- if current.presym_enabled?
- current.create_mrbc_build if current.host? || current.gems["mruby-bin-mrbc"]
- elsif current.host?
- current.build_mrbc_exec
+ begin
+ current.instance_eval(&block)
+ rescue Exception => err
+ raise
+ ensure
+ unless err
+ if current.libmruby_enabled? && !current.mrbcfile_external?
+ if current.presym_enabled?
+ current.create_mrbc_build if current.host? || current.gems["mruby-bin-mrbc"]
+ elsif current.host?
+ current.build_mrbc_exec
+ end
+ end
+ current.presym = Presym.new(current) if current.presym_enabled?
end
end
- current.presym = Presym.new(current) if current.presym_enabled?
end
def libmruby_enabled?