From 0396f3f0fd6e574ae859d24f058abcf1ada66f6b Mon Sep 17 00:00:00 2001 From: KOBAYASHI Shuji Date: Wed, 16 Dec 2020 19:17:44 +0900 Subject: Guess toolchain when `MRuby::Build#toolchain` argument is omitted --- lib/mruby/build.rb | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/mruby/build.rb b/lib/mruby/build.rb index 2e67fe5a6..83722a0e8 100644 --- a/lib/mruby/build.rb +++ b/lib/mruby/build.rb @@ -22,6 +22,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) @@ -29,7 +41,7 @@ module MRuby MRuby::Toolchain.toolchains[@name] = self end - def setup(conf,params={}) + def setup(conf, params={}) conf.instance_exec(conf, params, &@initializer) end @@ -221,7 +233,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" -- cgit v1.2.3