Sha256: f3f1ef73627ceb8fbc57ed8b586a4ca6c3a81f0f0ec9a8b84c3bac16ec00a1cd

Contents?: true

Size: 1.56 KB

Versions: 20

Compression:

Stored size: 1.56 KB

Contents

require 'rbconfig'

# Used from extconf and to load libskylight
module Skylight
  module Util
    module Platform
      # Normalize the platform OS
      OS = case os = RbConfig::CONFIG['host_os'].downcase
      when /linux/
        # The official ruby-alpine Docker containers pre-build Ruby. As a result,
        #   Ruby doesn't know that it's on a musl-based platform. `ldd` is the
        #   only reliable way to detect musl that we've found.
        # See https://github.com/skylightio/skylight-ruby/issues/92
        if ENV['SKYLIGHT_MUSL'] || `ldd --version 2>&1` =~ /musl/
          "linux-musl"
        else
          "linux"
        end
      when /darwin/
        "darwin"
      when /freebsd/
        "freebsd"
      when /netbsd/
        "netbsd"
      when /openbsd/
        "openbsd"
      when /sunos|solaris/
        "solaris"
      when /mingw|mswin/
        "windows"
      else
        os
      end

      # Normalize the platform CPU
      ARCH = case cpu = RbConfig::CONFIG['host_cpu'].downcase
      when /amd64|x86_64/
        "x86_64"
      when /i?86|x86|i86pc/
        "x86"
      when /ppc|powerpc/
        "powerpc"
      when /^arm/
        "arm"
      else
        cpu
      end

      LIBEXT = case OS
      when /darwin/
        'dylib'
      when /linux|bsd|solaris/
        'so'
      when /windows|cygwin/
        'dll'
      else
        'so'
      end

      TUPLE = "#{ARCH}-#{OS}"

      def self.tuple
        TUPLE
      end

      def self.libext
        LIBEXT
      end

      def self.dlext
        RbConfig::CONFIG['DLEXT']
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
skylight-1.7.2 lib/skylight/util/platform.rb
skylight-1.7.1 lib/skylight/util/platform.rb
skylight-1.7.0 lib/skylight/util/platform.rb
skylight-1.6.1 lib/skylight/util/platform.rb
skylight-1.6.0 lib/skylight/util/platform.rb
skylight-1.5.1 lib/skylight/util/platform.rb
skylight-1.5.0 lib/skylight/util/platform.rb
skylight-1.4.4 lib/skylight/util/platform.rb
skylight-1.4.3 lib/skylight/util/platform.rb
skylight-1.4.2 lib/skylight/util/platform.rb
skylight-1.4.1 lib/skylight/util/platform.rb
skylight-1.4.0 lib/skylight/util/platform.rb
skylight-1.4.0.beta.2 lib/skylight/util/platform.rb
skylight-1.4.0.beta lib/skylight/util/platform.rb
skylight-1.3.1 lib/skylight/util/platform.rb
skylight-1.3.0 lib/skylight/util/platform.rb
skylight-1.2.2 lib/skylight/util/platform.rb
skylight-1.2.1 lib/skylight/util/platform.rb
skylight-1.2.0 lib/skylight/util/platform.rb
skylight-1.1.0 lib/skylight/util/platform.rb