- Timestamp:
- Jul 9, 2020, 8:51:43 AM (4 years ago)
- Location:
- EcnlProtoTool/trunk/mruby-2.1.1
- Files:
-
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/mruby-2.1.1/mrbgems/mruby-test/mrbgem.rake
r331 r439 13 13 exec = exefile("#{build.build_dir}/bin/mrbtest") 14 14 15 libmruby = libfile("#{build.build_dir}/lib/libmruby")16 libmruby_core = libfile("#{build.build_dir}/lib/libmruby_core")17 18 15 mrbtest_lib = libfile("#{build_dir}/mrbtest") 19 16 mrbtest_objs = [] 20 17 21 driver_obj = objfile("#{build_dir}/driver") 22 driver = "#{spec.dir}/driver.c" 18 driver_objs = Dir.glob("#{dir}/*.{c,cpp,cxx,cc,m,asm,s,S}").map do |f| 19 objfile(f.relative_path_from(dir).to_s.pathmap("#{build_dir}/%X")) 20 end 23 21 24 22 assert_c = "#{build_dir}/assert.c" … … 28 26 29 27 file assert_lib => assert_c 30 file assert_c => assert_rbdo |t|28 file assert_c => [assert_rb, build.mrbcfile] do |t| 31 29 open(t.name, 'w') do |f| 32 30 mrbc.run f, assert_rb, 'mrbtest_assert_irep' … … 42 40 43 41 file test_rbobj => g.test_rbireps 44 file g.test_rbireps => [g.test_rbfiles ].flatten do |t|45 FileUtils.mkdir_p File.dirname(t.name)42 file g.test_rbireps => [g.test_rbfiles, build.mrbcfile].flatten do |t| 43 mkdir_p File.dirname(t.name) 46 44 open(t.name, 'w') do |f| 47 45 g.print_gem_test_header(f) … … 98 96 f.puts %Q[ if (mrb2->exc) {] 99 97 f.puts %Q[ mrb_print_error(mrb2);] 98 f.puts %Q[ mrb_close(mrb2);] 100 99 f.puts %Q[ exit(EXIT_FAILURE);] 101 100 f.puts %Q[ }] … … 136 135 137 136 unless build.build_mrbtest_lib_only? 138 file exec => [ driver_obj, mlib, mrbtest_lib, libmruby_core, libmruby] do |t|137 file exec => [*driver_objs, mlib, mrbtest_lib, build.libmruby_static] do |t| 139 138 gem_flags = build.gems.map { |g| g.linker.flags } 140 139 gem_flags_before_libraries = build.gems.map { |g| g.linker.flags_before_libraries } … … 142 141 gem_libraries = build.gems.map { |g| g.linker.libraries } 143 142 gem_library_paths = build.gems.map { |g| g.linker.library_paths } 144 build.linker.run t.name, t.prerequisites, gem_libraries, gem_library_paths, gem_flags, gem_flags_before_libraries 143 build.linker.run t.name, t.prerequisites, gem_libraries, gem_library_paths, gem_flags, 144 gem_flags_before_libraries, gem_flags_after_libraries 145 145 end 146 146 end 147 148 init = "#{spec.dir}/init_mrbtest.c"149 147 150 148 # store the last gem selection and make the re-build 151 149 # of the test gem depending on a change to the gem 152 150 # selection 153 active_gems = "#{build_dir}/active_gems.lst"154 FileUtils.mkdir_p File.dirname(active_gems)155 open(active_gems, 'w+') do |f|156 build.gems.each do |g|157 f.puts g.name158 end151 active_gems_path = "#{build_dir}/active_gems_path.lst" 152 active_gem_list = File.read active_gems_path if File.exist? active_gems_path 153 current_gem_list = build.gems.map(&:name).join("\n") 154 task active_gems_path do |_t| 155 mkdir_p File.dirname(active_gems_path) 156 File.write active_gems_path, current_gem_list 159 157 end 160 file clib => active_gems 158 file clib => active_gems_path if active_gem_list != current_gem_list 161 159 162 160 file mlib => clib 163 file clib => init do |t|161 file clib => [build.mrbcfile, __FILE__] do |_t| 164 162 _pp "GEN", "*.rb", "#{clib.relative_path}" 165 FileUtils.mkdir_p File.dirname(clib)163 mkdir_p File.dirname(clib) 166 164 open(clib, 'w') do |f| 167 165 f.puts %Q[/*] … … 174 172 f.puts %Q[ */] 175 173 f.puts %Q[] 176 f.puts IO.read(init) 174 f.puts %Q[struct mrb_state;] 175 f.puts %Q[typedef struct mrb_state mrb_state;] 177 176 build.gems.each do |g| 178 177 f.puts %Q[void GENERATED_TMP_mrb_#{g.funcname}_gem_test(mrb_state *mrb);]
Note:
See TracChangeset
for help on using the changeset viewer.