blob: afef065a1b44b522380f0bc44bea109ae7f84798 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
install_task = ->(src) do
dst = "#{MRuby::Build.install_dir}/#{File.basename(src)}"
file dst => src do
install_D src, dst
end
dst
end
MRuby.each_target do |build|
if build.host? && build.mrbc_build && !build.gems["mruby-bin-mrbc"]
exe = build.exefile("#{build.mrbc_build.build_dir}/bin/mrbc")
build.products << install_task.(exe)
end
build.bins.each do |bin|
exe = build.exefile("#{build.build_dir}/bin/#{bin}")
build.products << (build.host? ? install_task.(exe) : exe)
end
linker_attrs = build.gems.map{|gem| gem.linker.run_attrs}.transpose
build.gems.each do |gem|
gem.bins.each do |bin|
exe = build.exefile("#{build.build_dir}/bin/#{bin}")
objs = Dir["#{gem.dir}/tools/#{bin}/*.{c,cpp,cxx,cc}"].map do |f|
build.objfile(f.pathmap("#{gem.build_dir}/tools/#{bin}/%n"))
end
file exe => objs.concat(build.libraries) do |t|
build.linker.run t.name, t.prerequisites, *linker_attrs
end
build.products << (build.host? ? install_task.(exe) : exe)
end
end
end
|