mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Set up all GEMS before mruby core tasks definition
Until now, GEMs dependent on GEMs described in the build configuration file were loaded and set up after mruby core tasks were defined. This caused an issue where, if C++ exceptions were enabled later by a dependent GEM, the necessary tasks for mruby core were not defined. fixed https://github.com/mruby/mruby/issues/6615
This commit is contained in:
+16
-1
@@ -401,7 +401,16 @@ module MRuby
|
||||
end
|
||||
end
|
||||
|
||||
def generate_gem_table build
|
||||
def setup(build)
|
||||
gemset = nil
|
||||
begin
|
||||
gemset_prev = gemset
|
||||
self.each(&:setup)
|
||||
gemset = self.setup_dependencies(build).keys.sort
|
||||
end until gemset == gemset_prev
|
||||
end
|
||||
|
||||
def setup_dependencies(build)
|
||||
gem_table = each_with_object({}) { |spec, h| h[spec.name] = spec }
|
||||
|
||||
default_gems = {}
|
||||
@@ -424,6 +433,12 @@ module MRuby
|
||||
end
|
||||
end
|
||||
|
||||
gem_table
|
||||
end
|
||||
|
||||
def generate_gem_table(build)
|
||||
gem_table = setup_dependencies(build)
|
||||
|
||||
each do |g|
|
||||
g.dependencies.each do |dep|
|
||||
name = dep[:gem]
|
||||
|
||||
Reference in New Issue
Block a user