diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-07-12 18:35:20 +0900 |
|---|---|---|
| committer | KOBAYASHI Shuji <[email protected]> | 2019-07-12 18:35:20 +0900 |
| commit | 16e4657acdacfd99bd649d50b44a748d86a31861 (patch) | |
| tree | 45744b8455c0e4355dca0d5a532b5478d186e0e3 | |
| parent | c5f0a0256b550f853de95a57ac9cb3845d0e064a (diff) | |
| download | mruby-16e4657acdacfd99bd649d50b44a748d86a31861.tar.gz mruby-16e4657acdacfd99bd649d50b44a748d86a31861.zip | |
Lazy load `tasks/toolchains/*.rake`
| -rw-r--r-- | lib/mruby/build.rb | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/lib/mruby/build.rb b/lib/mruby/build.rb index 887a5518e..d9d52948b 100644 --- a/lib/mruby/build.rb +++ b/lib/mruby/build.rb @@ -22,7 +22,6 @@ module MRuby def initialize(name, &block) @name, @initializer = name.to_s, block - MRuby::Toolchain.toolchains ||= {} MRuby::Toolchain.toolchains[@name] = self end @@ -30,13 +29,8 @@ module MRuby conf.instance_exec(conf, params, &@initializer) end - def self.load - Dir.glob("#{MRUBY_ROOT}/tasks/toolchains/*.rake").each do |file| - Kernel.load file - end - end + self.toolchains = {} end - Toolchain.load class Build class << self @@ -196,10 +190,15 @@ EOS end def toolchain(name, params={}) - tc = Toolchain.toolchains[name.to_s] - fail "Unknown #{name} toolchain" unless tc + name = name.to_s + tc = Toolchain.toolchains[name] || begin + path = "#{MRUBY_ROOT}/tasks/toolchains/#{name}.rake" + fail "Unknown #{name} toolchain" unless File.exist?(path) + load path + Toolchain.toolchains[name] + end tc.setup(self, params) - @toolchains.unshift name.to_s + @toolchains.unshift name end def primary_toolchain |
