summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/mruby/build.rb19
-rw-r--r--lib/mruby/core_ext.rb1
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