summaryrefslogtreecommitdiffhomepage
path: root/tasks
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-02-12 10:29:47 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-02-12 10:33:53 +0900
commit5c130e8e7be5797bea19ec138e39f15ce464f53e (patch)
treea1697ce6001f405cc8c738b6c72c8f285edcaef9 /tasks
parent69f8a52866e83951bdfcfc3cae4f83a34c17bd9d (diff)
downloadmruby-5c130e8e7be5797bea19ec138e39f15ce464f53e.tar.gz
mruby-5c130e8e7be5797bea19ec138e39f15ce464f53e.zip
Do not collect linker options from binary gems; close #5210
Binary gems are mrbgems that set `spec.bins` in their `mrbgem.rake`, and usually their names are prefixed with `mruby-bin-`.
Diffstat (limited to 'tasks')
-rw-r--r--tasks/bin.rake2
-rw-r--r--tasks/libmruby.rake9
2 files changed, 6 insertions, 5 deletions
diff --git a/tasks/bin.rake b/tasks/bin.rake
index bc8820b66..5c764458d 100644
--- a/tasks/bin.rake
+++ b/tasks/bin.rake
@@ -6,8 +6,8 @@ MRuby.each_target do |build|
build.bins.each{|bin| build.products << define_installer_if_needed(bin)}
- linker_attrs = build.gems.linker_attrs
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|
diff --git a/tasks/libmruby.rake b/tasks/libmruby.rake
index 23cd992ff..8cdb4ca2e 100644
--- a/tasks/libmruby.rake
+++ b/tasks/libmruby.rake
@@ -16,14 +16,15 @@ MRuby.each_target do
open(t.name, 'w') do |f|
f.puts "MRUBY_CFLAGS = #{cc.all_flags}"
- gem_flags = gems.map { |g| g.linker.flags }
- gem_library_paths = gems.map { |g| g.linker.library_paths }
+ libgems = gems.reject{|g| g.bin?}
+ gem_flags = libgems.map {|g| g.linker.flags }
+ gem_library_paths = libgems.map {|g| g.linker.library_paths }
f.puts "MRUBY_LDFLAGS = #{linker.all_flags(gem_library_paths, gem_flags)} #{linker.option_library_path % "#{build_dir}/lib"}"
- gem_flags_before_libraries = gems.map { |g| g.linker.flags_before_libraries }
+ gem_flags_before_libraries = libgems.map {|g| g.linker.flags_before_libraries }
f.puts "MRUBY_LDFLAGS_BEFORE_LIBS = #{[linker.flags_before_libraries, gem_flags_before_libraries].flatten.join(' ')}"
- gem_libraries = gems.map { |g| g.linker.libraries }
+ gem_libraries = libgems.map {|g| g.linker.libraries }
f.puts "MRUBY_LIBS = #{linker.option_library % 'mruby'} #{linker.library_flags(gem_libraries)}"
f.puts "MRUBY_LIBMRUBY_PATH = #{libmruby_static}"