Ignore:
Timestamp:
Jul 9, 2020, 8:51:43 AM (4 years ago)
Author:
coas-nagasima
Message:

mrubyを2.1.1に更新

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  
    1313  exec = exefile("#{build.build_dir}/bin/mrbtest")
    1414
    15   libmruby = libfile("#{build.build_dir}/lib/libmruby")
    16   libmruby_core = libfile("#{build.build_dir}/lib/libmruby_core")
    17 
    1815  mrbtest_lib = libfile("#{build_dir}/mrbtest")
    1916  mrbtest_objs = []
    2017
    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
    2321
    2422  assert_c = "#{build_dir}/assert.c"
     
    2826
    2927  file assert_lib => assert_c
    30   file assert_c => assert_rb do |t|
     28  file assert_c => [assert_rb, build.mrbcfile] do |t|
    3129    open(t.name, 'w') do |f|
    3230      mrbc.run f, assert_rb, 'mrbtest_assert_irep'
     
    4240
    4341    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)
    4644      open(t.name, 'w') do |f|
    4745        g.print_gem_test_header(f)
     
    9896            f.puts %Q[  if (mrb2->exc) {]
    9997            f.puts %Q[    mrb_print_error(mrb2);]
     98            f.puts %Q[    mrb_close(mrb2);]
    10099            f.puts %Q[    exit(EXIT_FAILURE);]
    101100            f.puts %Q[  }]
     
    136135
    137136  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|
    139138      gem_flags = build.gems.map { |g| g.linker.flags }
    140139      gem_flags_before_libraries = build.gems.map { |g| g.linker.flags_before_libraries }
     
    142141      gem_libraries = build.gems.map { |g| g.linker.libraries }
    143142      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
    145145    end
    146146  end
    147 
    148   init = "#{spec.dir}/init_mrbtest.c"
    149147
    150148  # store the last gem selection and make the re-build
    151149  # of the test gem depending on a change to the gem
    152150  # 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.name
    158     end
     151  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
    159157  end
    160   file clib => active_gems
     158  file clib => active_gems_path if active_gem_list != current_gem_list
    161159
    162160  file mlib => clib
    163   file clib => init do |t|
     161  file clib => [build.mrbcfile, __FILE__] do |_t|
    164162    _pp "GEN", "*.rb", "#{clib.relative_path}"
    165     FileUtils.mkdir_p File.dirname(clib)
     163    mkdir_p File.dirname(clib)
    166164    open(clib, 'w') do |f|
    167165      f.puts %Q[/*]
     
    174172      f.puts %Q[ */]
    175173      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;]
    177176      build.gems.each do |g|
    178177        f.puts %Q[void GENERATED_TMP_mrb_#{g.funcname}_gem_test(mrb_state *mrb);]
Note: See TracChangeset for help on using the changeset viewer.