summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorKOBAYASHI Shuji <[email protected]>2020-12-16 19:17:44 +0900
committerKOBAYASHI Shuji <[email protected]>2020-12-16 19:17:44 +0900
commit0396f3f0fd6e574ae859d24f058abcf1ada66f6b (patch)
treeef1ada52d79a83c0463bee1c5bcc4beb9345172e /lib
parentc1c8c25e70a54e6a82ab8cea05c115b94eb3d5ab (diff)
downloadmruby-0396f3f0fd6e574ae859d24f058abcf1ada66f6b.tar.gz
mruby-0396f3f0fd6e574ae859d24f058abcf1ada66f6b.zip
Guess toolchain when `MRuby::Build#toolchain` argument is omitted
Diffstat (limited to 'lib')
-rw-r--r--lib/mruby/build.rb16
1 files changed, 14 insertions, 2 deletions
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"