@@ -16,7 +16,6 @@ mruby_config=File.expand_path(ENV["MRUBY_CONFIG"] || "build_config.rb")
16
16
ENV [ 'MRUBY_ROOT' ] = mruby_root
17
17
ENV [ 'MRUBY_CONFIG' ] = mruby_config
18
18
Rake ::Task [ :mruby ] . invoke unless Dir . exist? ( mruby_root )
19
- Dir . chdir ( mruby_root )
20
19
load "#{ mruby_root } /Rakefile"
21
20
22
21
load 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
27
26
28
27
desc "compile all the binaries"
29
28
task :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
36
37
end
37
38
end
38
39
39
40
namespace :test do
40
41
desc "run mruby & unit tests"
41
42
# only build mtest for host
42
43
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
49
52
end
50
53
end
51
54
@@ -63,9 +66,11 @@ namespace :test do
63
66
64
67
desc "run integration tests"
65
68
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
69
74
end
70
75
end
71
76
end
@@ -77,38 +82,42 @@ task :test => ['test:bintest', 'test:mtest']
77
82
78
83
desc "cleanup"
79
84
task :clean do
80
- sh "rake deep_clean"
85
+ Dir . chdir ( mruby_root ) do
86
+ sh "rake deep_clean"
87
+ end
81
88
end
82
89
83
90
desc "generate a release tarball"
84
91
task :release => :compile do
85
92
require 'tmpdir'
86
93
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
107
116
end
108
- end
109
117
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
112
121
end
113
122
end
114
123
end
0 commit comments