diff options
Diffstat (limited to 'mrbgems/mruby-bin-mruby-config/mrbgem.rake')
| -rw-r--r-- | mrbgems/mruby-bin-mruby-config/mrbgem.rake | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/mrbgems/mruby-bin-mruby-config/mrbgem.rake b/mrbgems/mruby-bin-mruby-config/mrbgem.rake new file mode 100644 index 000000000..42d22e35e --- /dev/null +++ b/mrbgems/mruby-bin-mruby-config/mrbgem.rake @@ -0,0 +1,31 @@ +require 'FileUtils' + +module MRuby + class Build + def exefile(name) + if name.is_a?(Array) + name.flatten.map { |n| exefile(n) } + elsif name !~ /\./ + "#{name}#{exts.executable}" + else + name + end + end + end +end + +MRuby.each_target do + next if kind_of? MRuby::CrossBuild + + mruby_config = 'mruby-config' + (ENV['OS'] == 'Windows_NT' ? '.bat' : '') + mruby_config_path = "#{build_dir}/bin/#{mruby_config}" + @bins << mruby_config + + file mruby_config_path => libfile("#{build_dir}/lib/libmruby") do |t| + FileUtils.copy "#{File.dirname(__FILE__)}/#{mruby_config}", t.name + config = Hash[open("#{build_dir}/lib/libmruby.flags.mak").read.split("\n").map {|x| x.split(/\s*=\s*/, 2)}] + IO.write(t.name, File.open(t.name) {|f| + f.read.gsub (/echo (MRUBY_CFLAGS|MRUBY_LDFLAGS|MRUBY_LIBS)/) {|x| config[$1].empty? ? 'echo/' : "echo #{config[$1]}"} + }) + end +end |
