@@ -16,7 +16,6 @@ mruby_config=File.expand_path(ENV["MRUBY_CONFIG"] || "build_config.rb")
1616ENV [ 'MRUBY_ROOT' ] = mruby_root
1717ENV [ 'MRUBY_CONFIG' ] = mruby_config
1818Rake ::Task [ :mruby ] . invoke unless Dir . exist? ( mruby_root )
19- Dir . chdir ( mruby_root )
2019load "#{ mruby_root } /Rakefile"
2120
2221load File . join ( File . expand_path ( File . dirname ( __FILE__ ) ) , "mrbgem.rake" )
@@ -27,25 +26,29 @@ APP_VERSION = (app_version.nil? || app_version.empty?) ? "unknown" : app_version
2726
2827desc "compile all the binaries"
2928task :compile => [ :all ] do
30- MRuby . each_target do |target |
31- `#{ target . cc . command } --version`
32- abort ( "Command #{ target . cc . command } for #{ target . name } is missing." ) unless $?. success?
33- end
34- %W( #{ mruby_root } /build/x86_64-pc-linux-gnu/bin/#{ APP_NAME } #{ mruby_root } /build/i686-pc-linux-gnu/#{ APP_NAME } ") . each do |bin |
35- sh "strip --strip-unneeded #{ bin } " if File . exist? ( bin )
29+ Dir . chdir ( mruby_root ) do
30+ MRuby . each_target do |target |
31+ `#{ target . cc . command } --version`
32+ abort ( "Command #{ target . cc . command } for #{ target . name } is missing." ) unless $?. success?
33+ end
34+ %W( #{ mruby_root } /build/x86_64-pc-linux-gnu/bin/#{ APP_NAME } #{ mruby_root } /build/i686-pc-linux-gnu/#{ APP_NAME } ) . each do |bin |
35+ sh "strip --strip-unneeded #{ bin } " if File . exist? ( bin )
36+ end
3637 end
3738end
3839
3940namespace :test do
4041 desc "run mruby & unit tests"
4142 # only build mtest for host
4243 task :mtest => :compile do
43- # in order to get mruby/test/t/synatx.rb __FILE__ to pass,
44- # we need to make sure the tests are built relative from mruby_root
45- MRuby . each_target do |target |
46- # only run unit tests here
47- target . enable_bintest = false
48- run_test if target . test_enabled?
44+ Dir . chdir ( mruby_root ) do
45+ # in order to get mruby/test/t/synatx.rb __FILE__ to pass,
46+ # we need to make sure the tests are built relative from mruby_root
47+ MRuby . each_target do |target |
48+ # only run unit tests here
49+ target . enable_bintest = false
50+ run_test if target . test_enabled?
51+ end
4952 end
5053 end
5154
@@ -63,9 +66,11 @@ namespace :test do
6366
6467 desc "run integration tests"
6568 task :bintest => :compile do
66- MRuby . each_target do |target |
67- clean_env ( %w( MRUBY_ROOT MRUBY_CONFIG ) ) do
68- run_bintest if target . bintest_enabled?
69+ Dir . chdir ( mruby_root ) do
70+ MRuby . each_target do |target |
71+ clean_env ( %w( MRUBY_ROOT MRUBY_CONFIG ) ) do
72+ run_bintest if target . bintest_enabled?
73+ end
6974 end
7075 end
7176 end
@@ -77,38 +82,42 @@ task :test => ['test:bintest', 'test:mtest']
7782
7883desc "cleanup"
7984task :clean do
80- sh "rake deep_clean"
85+ Dir . chdir ( mruby_root ) do
86+ sh "rake deep_clean"
87+ end
8188end
8289
8390desc "generate a release tarball"
8491task :release => :compile do
8592 require 'tmpdir'
8693
87- # since we're in the mruby/
88- release_dir = "releases/v#{ APP_VERSION } "
89- release_path = Dir . pwd + "/../#{ release_dir } "
90- app_name = "#{ APP_NAME } -#{ APP_VERSION } "
91- FileUtils . mkdir_p ( release_path )
92-
93- Dir . mktmpdir do |tmp_dir |
94- Dir . chdir ( tmp_dir ) do
95- MRuby . each_target do |target |
96- next if name == "host"
97-
98- arch = name
99- bin = "#{ build_dir } /bin/#{ exefile ( APP_NAME ) } "
100- FileUtils . mkdir_p ( name )
101- FileUtils . cp ( bin , name )
102-
103- Dir . chdir ( arch ) do
104- arch_release = "#{ app_name } -#{ arch } "
105- puts "Writing #{ release_dir } /#{ arch_release } .tgz"
106- `tar czf #{ release_path } /#{ arch_release } .tgz *`
94+ Dir . chdir ( mruby_root ) do
95+ # since we're in the mruby/
96+ release_dir = "releases/v#{ APP_VERSION } "
97+ release_path = Dir . pwd + "/../#{ release_dir } "
98+ app_name = "#{ APP_NAME } -#{ APP_VERSION } "
99+ FileUtils . mkdir_p ( release_path )
100+
101+ Dir . mktmpdir do |tmp_dir |
102+ Dir . chdir ( tmp_dir ) do
103+ MRuby . each_target do |target |
104+ next if name == "host"
105+
106+ arch = name
107+ bin = "#{ build_dir } /bin/#{ exefile ( APP_NAME ) } "
108+ FileUtils . mkdir_p ( name )
109+ FileUtils . cp ( bin , name )
110+
111+ Dir . chdir ( arch ) do
112+ arch_release = "#{ app_name } -#{ arch } "
113+ puts "Writing #{ release_dir } /#{ arch_release } .tgz"
114+ `tar czf #{ release_path } /#{ arch_release } .tgz *`
115+ end
107116 end
108- end
109117
110- puts "Writing #{ release_dir } /#{ app_name } .tgz"
111- `tar czf #{ release_path } /#{ app_name } .tgz *`
118+ puts "Writing #{ release_dir } /#{ app_name } .tgz"
119+ `tar czf #{ release_path } /#{ app_name } .tgz *`
120+ end
112121 end
113122 end
114123end
0 commit comments