Sha256: c557635732e4d5e17a6bd2d3c2ff1160bd9aa2416afa022f55ba7ef28f88aef7

Contents?: true

Size: 748 Bytes

Versions: 54

Compression:

Stored size: 748 Bytes

Contents

# frozen_string_literal: true

class Gem::Ext::CargoBuilder < Gem::Ext::Builder
  # Converts Ruby link flags into something cargo understands
  class LinkFlagConverter
    FILTERED_PATTERNS = [
      /compress-debug-sections/, # Not supported by all linkers, and not required for Rust
    ].freeze

    def self.convert(arg)
      return [] if FILTERED_PATTERNS.any? {|p| p.match?(arg) }

      case arg.chomp
      when /^-L\s*(.+)$/
        ["-L", "native=#{$1}"]
      when /^--library=(\w+\S+)$/, /^-l\s*(\w+\S+)$/
        ["-l", $1]
      when /^-l\s*([^:\s])+/ # -lfoo, but not -l:libfoo.a
        ["-l", $1]
      when /^-F\s*(.*)$/
        ["-l", "framework=#{$1}"]
      else
        ["-C", "link-args=#{arg}"]
      end
    end
  end
end

Version data entries

54 entries across 54 versions & 2 rubygems

Version Path
malicious-1.1 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.6.6 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.6.5 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.6.4 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.6.3 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.6.2 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.6.1 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.6.0 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.5.23 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.5.22 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.5.21 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.5.20 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.5.19 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.5.18 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.5.17 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.5.16 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.5.15 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.5.14 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.5.13 lib/rubygems/ext/cargo_builder/link_flag_converter.rb
rubygems-update-3.5.12 lib/rubygems/ext/cargo_builder/link_flag_converter.rb