mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
build_config gets more flexibility
This commit is contained in:
@@ -90,7 +90,7 @@ module MRuby
|
||||
|
||||
def define_gem_init_builder
|
||||
file objfile("#{build_dir}/gem_init") => "#{build_dir}/gem_init.c"
|
||||
file "#{build_dir}/gem_init.c" => [build.mrbcfile] + rbfiles do |t|
|
||||
file "#{build_dir}/gem_init.c" => [build.mrbcfile] + [rbfiles].flatten do |t|
|
||||
FileUtils.mkdir_p build_dir
|
||||
generate_gem_init("#{build_dir}/gem_init.c")
|
||||
end
|
||||
|
||||
@@ -5,16 +5,16 @@ MRuby.each_target do
|
||||
test_rbc = "#{g.build_dir}/gem_test.c"
|
||||
test_rbobj = test_rbc.ext(exts.object)
|
||||
|
||||
file g.testlib => g.test_objs + [test_rbobj] do |t|
|
||||
file g.testlib => [g.test_objs, test_rbobj].flatten do |t|
|
||||
g.build.archiver.run t.name, t.prerequisites
|
||||
end
|
||||
|
||||
file test_rbobj => test_rbc
|
||||
file test_rbc => g.test_rbfiles + [g.build.mrbcfile, libfile("#{build_dir}/lib/libmruby")] do |t|
|
||||
file test_rbc => [g.test_rbfiles].flatten + [g.build.mrbcfile, libfile("#{build_dir}/lib/libmruby")] do |t|
|
||||
open(t.name, 'w') do |f|
|
||||
g.print_gem_init_header(f)
|
||||
g.build.mrbc.run f, g.test_preload, "gem_test_irep_#{g.funcname}_preload"
|
||||
g.test_rbfiles.each_with_index do |rbfile, i|
|
||||
g.test_rbfiles.flatten.each_with_index do |rbfile, i|
|
||||
g.build.mrbc.run f, rbfile, "gem_test_irep_#{g.funcname}_#{i}"
|
||||
end
|
||||
f.puts %Q[void mrb_#{g.funcname}_gem_test(mrb_state *mrb);] unless g.test_objs.empty?
|
||||
|
||||
@@ -113,7 +113,7 @@ module MRuby
|
||||
|
||||
def filename(name)
|
||||
if name.is_a?(Array)
|
||||
name.map { |n| filename(n) }
|
||||
name.flatten.map { |n| filename(n) }
|
||||
else
|
||||
'"%s"' % name.gsub('/', file_separator)
|
||||
end
|
||||
@@ -121,7 +121,7 @@ module MRuby
|
||||
|
||||
def exefile(name)
|
||||
if name.is_a?(Array)
|
||||
name.map { |n| exefile(n) }
|
||||
name.flatten.map { |n| exefile(n) }
|
||||
else
|
||||
"#{name}#{exts.executable}"
|
||||
end
|
||||
@@ -129,7 +129,7 @@ module MRuby
|
||||
|
||||
def objfile(name)
|
||||
if name.is_a?(Array)
|
||||
name.map { |n| objfile(n) }
|
||||
name.flatten.map { |n| objfile(n) }
|
||||
else
|
||||
"#{name}#{exts.object}"
|
||||
end
|
||||
@@ -137,7 +137,7 @@ module MRuby
|
||||
|
||||
def libfile(name)
|
||||
if name.is_a?(Array)
|
||||
name.map { |n| libfile(n) }
|
||||
name.flatten.map { |n| libfile(n) }
|
||||
else
|
||||
"#{name}#{exts.library}"
|
||||
end
|
||||
|
||||
@@ -50,7 +50,7 @@ module MRuby
|
||||
FileUtils.mkdir_p File.dirname(outfile)
|
||||
define_flags = [defines, _defineds].flatten.map{ |d| option_define % d }
|
||||
include_path_flags = [include_paths, _include_paths, File.dirname(infile)].flatten.map{ |f| option_include_path % filename(f) }
|
||||
_run compile_options, { :flags => (flags + define_flags + include_path_flags + _flags).join(' '), :infile => filename(infile), :outfile => filename(outfile) }
|
||||
_run compile_options, { :flags => [flags, define_flags, include_path_flags, _flags].flatten.join(' '), :infile => filename(infile), :outfile => filename(outfile) }
|
||||
end
|
||||
|
||||
def define_rules(build_dir, source_dir='')
|
||||
@@ -112,7 +112,7 @@ module MRuby
|
||||
FileUtils.mkdir_p File.dirname(outfile)
|
||||
library_flags = [libraries, _libraries].flatten.reverse.map{ |d| option_library % d }
|
||||
library_path_flags = [library_paths, _library_paths].flatten.map{ |f| option_library_path % filename(f) }
|
||||
_run link_options, { :flags => (flags + library_path_flags + _flags).join(' '), :outfile => filename(outfile) , :objs => filename(objfiles).join(' '), :libs => library_flags.join(' ') }
|
||||
_run link_options, { :flags => [flags, library_path_flags, _flags].flatten.join(' '), :outfile => filename(outfile) , :objs => filename(objfiles).join(' '), :libs => library_flags.join(' ') }
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ MRuby.each_target do
|
||||
init = "#{dir}/init_mrbtest.c"
|
||||
asslib = "#{dir}/assert.rb"
|
||||
|
||||
objs = [objfile("#{build_dir}/#{dir}/driver"), mlib]
|
||||
objs = [objfile("#{build_dir}/#{dir}/driver"), mlib].flatten
|
||||
|
||||
file exec => objs + gems.map(&:testlib) + [libfile("#{build_dir}/lib/libmruby")] do |t|
|
||||
gem_flags = gems.map { |g| g.linker.flags }
|
||||
|
||||
@@ -3,7 +3,7 @@ MRuby.each_target do
|
||||
|
||||
if bins.find { |s| s.to_s == 'mirb' }
|
||||
exec = exefile("#{build_dir}/bin/mirb")
|
||||
objs = Dir.glob("#{dir}/*.c").map { |f| objfile(f.pathmap("#{build_dir}/%X")) }
|
||||
objs = Dir.glob("#{dir}/*.c").map { |f| objfile(f.pathmap("#{build_dir}/%X")) }.flatten
|
||||
|
||||
file exec => objs + [libfile("#{build_dir}/lib/libmruby")] do |t|
|
||||
gem_flags = gems.map { |g| g.linker.flags }
|
||||
|
||||
@@ -3,7 +3,7 @@ MRuby.each_target do
|
||||
|
||||
if bins.find { |s| s.to_s == 'mrbc' }
|
||||
exec = exefile("#{build_dir}/bin/mrbc")
|
||||
objs = Dir.glob("#{dir}/*.c").map { |f| objfile(f.pathmap("#{build_dir}/%X")) }
|
||||
objs = Dir.glob("#{dir}/*.c").map { |f| objfile(f.pathmap("#{build_dir}/%X")) }.flatten
|
||||
|
||||
file exec => objs + [libfile("#{build_dir}/lib/libmruby_core")] do |t|
|
||||
linker.run t.name, t.prerequisites
|
||||
|
||||
@@ -3,7 +3,7 @@ MRuby.each_target do
|
||||
|
||||
if bins.find { |s| s.to_s == 'mruby' }
|
||||
exec = exefile("#{build_dir}/bin/mruby")
|
||||
objs = Dir.glob("#{dir}/*.c").map { |f| objfile(f.pathmap("#{build_dir}/%X")) }
|
||||
objs = Dir.glob("#{dir}/*.c").map { |f| objfile(f.pathmap("#{build_dir}/%X")) }.flatten
|
||||
|
||||
file exec => objs + [libfile("#{build_dir}/lib/libmruby")] do |t|
|
||||
gem_flags = gems.map { |g| g.linker.flags }
|
||||
|
||||
Reference in New Issue
Block a user