summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-12-16 20:25:35 +0900
committerGitHub <[email protected]>2020-12-16 20:25:35 +0900
commit1b7197622f770ce4ae3f3f2aaae1ea427ff3b902 (patch)
treeef1ada52d79a83c0463bee1c5bcc4beb9345172e /lib
parentc1c8c25e70a54e6a82ab8cea05c115b94eb3d5ab (diff)
parent0396f3f0fd6e574ae859d24f058abcf1ada66f6b (diff)
downloadmruby-1b7197622f770ce4ae3f3f2aaae1ea427ff3b902.tar.gz
mruby-1b7197622f770ce4ae3f3f2aaae1ea427ff3b902.zip
Merge pull request #5226 from shuujii/guess-toolchain-when-MRubyBuild-toolchain-argument-is-omitted
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"