summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-bin-mruby-config/mrbgem.rake
diff options
context:
space:
mode:
authormattn <[email protected]>2014-03-05 12:46:07 +0900
committermattn <[email protected]>2014-03-05 12:46:07 +0900
commitfb621ef4113d3a5cd6b54c68ad04d33d17c0c571 (patch)
tree8123ff1ee051964afe20ab12e132492e55960aba /mrbgems/mruby-bin-mruby-config/mrbgem.rake
parentba608fb38ac4f82e68c53305f59017520fa76209 (diff)
downloadmruby-fb621ef4113d3a5cd6b54c68ad04d33d17c0c571.tar.gz
mruby-fb621ef4113d3a5cd6b54c68ad04d33d17c0c571.zip
Add mruby-bin-mruby-config
Diffstat (limited to 'mrbgems/mruby-bin-mruby-config/mrbgem.rake')
-rw-r--r--mrbgems/mruby-bin-mruby-config/mrbgem.rake31
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