diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/mruby/build.rb | 19 | ||||
| -rw-r--r-- | lib/mruby/core_ext.rb | 1 |
2 files changed, 17 insertions, 3 deletions
diff --git a/lib/mruby/build.rb b/lib/mruby/build.rb index 484613964..2819ad594 100644 --- a/lib/mruby/build.rb +++ b/lib/mruby/build.rb @@ -23,6 +23,18 @@ module MRuby class Toolchain class << self attr_accessor :toolchains + + def guess + if cc = ENV["CC"] || ENV["CXX"] + return "clang" if cc.include?("clang") + else + return "clang" if RUBY_PLATFORM =~ /darwin|(?:free|open)bsd/ + return "gcc" if RUBY_PLATFORM.include?("cygwin") + return "visualcpp" if ENV.include?("VisualStudioVersion") + return "visualcpp" if ENV.include?("VSINSTALLDIR") + end + "gcc" + end end def initialize(name, &block) @@ -30,7 +42,7 @@ module MRuby MRuby::Toolchain.toolchains[@name] = self end - def setup(conf,params={}) + def setup(conf, params={}) conf.instance_exec(conf, params, &@initializer) end @@ -115,9 +127,10 @@ module MRuby @toolchains = [] @gem_dir_to_repo_url = {} - MRuby.targets[@name] = self.class.current = current = self + MRuby.targets[@name] = current = self end + MRuby::Build.current = current current.instance_eval(&block) if current.libmruby_enabled? && !current.mrbcfile_external? if current.presym_enabled? @@ -267,7 +280,7 @@ EOS @enable_bintest end - def toolchain(name, params={}) + def toolchain(name=Toolchain.guess, params={}) name = name.to_s tc = Toolchain.toolchains[name] || begin path = "#{MRUBY_ROOT}/tasks/toolchains/#{name}.rake" diff --git a/lib/mruby/core_ext.rb b/lib/mruby/core_ext.rb index c404bfec9..33454edad 100644 --- a/lib/mruby/core_ext.rb +++ b/lib/mruby/core_ext.rb @@ -21,6 +21,7 @@ class String end def install_D(src, dst) + _pp "INSTALL", src.relative_path, dst.relative_path rm_f dst mkdir_p File.dirname(dst) cp src, dst |
