mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
5c130e8e7b
Binary gems are mrbgems that set `spec.bins` in their `mrbgem.rake`, and usually their names are prefixed with `mruby-bin-`.
24 lines
813 B
Ruby
24 lines
813 B
Ruby
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 << build.define_installer(exe)
|
|
end
|
|
|
|
build.bins.each{|bin| build.products << define_installer_if_needed(bin)}
|
|
|
|
build.gems.each do |gem|
|
|
linker_attrs = build.gems.linker_attrs(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 << define_installer_if_needed(bin)
|
|
end
|
|
end
|
|
end
|