diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2022-06-23 11:22:36 +0200 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2022-06-24 10:52:02 +0900 |
commit | 12a5fa408bd318f8fb242e86beb225f2dcae8df9 (patch) | |
tree | f132650f5999535da69ee998956f260007afd371 /lib/rubygems/ext/cargo_builder/link_flag_converter.rb | |
parent | 333754ace8ae9bc5d2dfb4aee160fcfa0f38350d (diff) | |
download | ruby-12a5fa408bd318f8fb242e86beb225f2dcae8df9.tar.gz |
Sync RubyGems & Bundler with upstream repo
Diffstat (limited to 'lib/rubygems/ext/cargo_builder/link_flag_converter.rb')
-rw-r--r-- | lib/rubygems/ext/cargo_builder/link_flag_converter.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/rubygems/ext/cargo_builder/link_flag_converter.rb b/lib/rubygems/ext/cargo_builder/link_flag_converter.rb new file mode 100644 index 0000000000..111bb05492 --- /dev/null +++ b/lib/rubygems/ext/cargo_builder/link_flag_converter.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class Gem::Ext::CargoBuilder < Gem::Ext::Builder + # Converts Ruby link flags into something cargo understands + class LinkFlagConverter + def self.convert(arg) + case arg.chomp + when /^-L\s*(.+)$/ + ["-L", "native=#{$1}"] + when /^--library=(\w+\S+)$/, /^-l\s*(\w+\S+)$/ + ["-l", $1] + when /^-l\s*:lib(\S+).a$/ + ["-l", "static=#{$1}"] + when /^-l\s*:lib(\S+).(so|dylib|dll)$/ + ["-l", "dylib=#{$1}"] + when /^-F\s*(.*)$/ + ["-l", "framework=#{$1}"] + else + ["-C", "link_arg=#{arg}"] + end + end + end +end |