From 5c130e8e7be5797bea19ec138e39f15ce464f53e Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 12 Feb 2021 10:29:47 +0900 Subject: 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-`. --- lib/mruby/gem.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/mruby/gem.rb b/lib/mruby/gem.rb index 48a14fc54..3a40fbbfc 100644 --- a/lib/mruby/gem.rb +++ b/lib/mruby/gem.rb @@ -119,6 +119,10 @@ module MRuby @dir.start_with?("#{MRUBY_ROOT}/mrbgems/") end + def bin? + @bins.size > 0 + end + def add_dependency(name, *requirements) default_gem = requirements.last.kind_of?(Hash) ? requirements.pop : nil requirements = ['>= 0.0.0'] if requirements.empty? @@ -496,8 +500,10 @@ module MRuby end end - def linker_attrs - map{|g| g.linker.run_attrs}.transpose + def linker_attrs(gem=nil) + gems = self.reject{|g| g.bin?} # library gems + gems << gem unless gem.nil? + gems.map{|g| g.linker.run_attrs}.transpose end end # List end # Gem -- cgit v1.2.3