Class: RbSys::ToolchainInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/rb_sys/toolchain_info.rb,
lib/rb_sys/toolchain_info/data.rb

Constant Summary collapse

DATA =
{"arm-linux" => {"rust-target" => "arm-unknown-linux-gnueabihf", "rake-compiler-dock" => {"cc" => "arm-linux-gnueabihf-gcc"}, "docker-platform" => "linux/arm/v7", "supported" => true}, "aarch64-linux" => {"rust-target" => "aarch64-unknown-linux-gnu", "rake-compiler-dock" => {"cc" => "aarch64-linux-gnu-gcc"}, "docker-platform" => "linux/arm64/v8", "supported" => true}, "arm64-darwin" => {"rust-target" => "aarch64-apple-darwin", "rake-compiler-dock" => {"cc" => "aarch64-apple-darwin-clang"}, "docker-platform" => "linux/arm64/v8", "supported" => true}, "x64-mingw-ucrt" => {"rust-target" => "x86_64-pc-windows-gnu", "rake-compiler-dock" => {"cc" => "x86_64-windows-gnu-gcc"}, "docker-platform" => "linux/amd64", "supported" => true}, "x64-mingw32" => {"rust-target" => "x86_64-pc-windows-gnu", "rake-compiler-dock" => {"cc" => "x86_64-windows-gnu-gcc"}, "docker-platform" => "linux/amd64", "supported" => true}, "x86-linux" => {"rust-target" => "i686-unknown-linux-gnu", "rake-compiler-dock" => {"cc" => "i686-redhat-linux-gcc"}, "docker-platform" => "linux/i386", "supported" => false}, "x86-mingw32" => {"rust-target" => "i686-pc-windows-gnu", "rake-compiler-dock" => {"cc" => "i686-w64-mingw32-gcc"}, "docker-platform" => "linux/i386", "supported" => false}, "x86_64-darwin" => {"rust-target" => "x86_64-apple-darwin", "rake-compiler-dock" => {"cc" => "x86_64-apple-darwin-clang"}, "docker-platform" => "linux/amd64", "supported" => true}, "x86_64-linux" => {"rust-target" => "x86_64-unknown-linux-gnu", "rake-compiler-dock" => {"cc" => "x86_64-redhat-linux-gcc"}, "docker-platform" => "linux/amd64", "supported" => true}, "x86_64-linux-musl" => {"rust-target" => "x86_64-unknown-linux-musl", "rake-compiler-dock" => {"cc" => "x86_64-unknown-linux-musl-gcc"}, "docker-platform" => "linux/amd64", "supported" => true}}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(platform) ⇒ ToolchainInfo

Returns a new instance of ToolchainInfo.



19
20
21
22
23
24
25
26
27
28
# File 'lib/rb_sys/toolchain_info.rb', line 19

def initialize(platform)
  @platform = platform
  @gem_platform = Gem::Platform.new(platform)
  data = DATA[platform] || DATA["#{gem_platform.cpu}-#{gem_platform.os}"] || raise(ArgumentError, "unknown ruby platform: #{platform.inspect}")
  @rust_target = data["rust-target"]
  @rake_compiler_dock_cc = data["rake-compiler-dock"]["cc"]
  @supported = data["supported"]
  @rake_compiler_dock_image = "rbsys/#{platform}:#{RbSys::VERSION}"
  @docker_platform = data["docker-platform"]
end

Instance Attribute Details

#docker_platformObject (readonly)

Returns the value of attribute docker_platform.



7
8
9
# File 'lib/rb_sys/toolchain_info.rb', line 7

def docker_platform
  @docker_platform
end

#gem_platformObject (readonly)

Returns the value of attribute gem_platform.



7
8
9
# File 'lib/rb_sys/toolchain_info.rb', line 7

def gem_platform
  @gem_platform
end

#platformObject (readonly)

Returns the value of attribute platform.



7
8
9
# File 'lib/rb_sys/toolchain_info.rb', line 7

def platform
  @platform
end

#rake_compiler_dock_ccObject (readonly)

Returns the value of attribute rake_compiler_dock_cc.



7
8
9
# File 'lib/rb_sys/toolchain_info.rb', line 7

def rake_compiler_dock_cc
  @rake_compiler_dock_cc
end

#rake_compiler_dock_imageObject (readonly)

Returns the value of attribute rake_compiler_dock_image.



7
8
9
# File 'lib/rb_sys/toolchain_info.rb', line 7

def rake_compiler_dock_image
  @rake_compiler_dock_image
end

#rust_targetObject (readonly)

Returns the value of attribute rust_target.



7
8
9
# File 'lib/rb_sys/toolchain_info.rb', line 7

def rust_target
  @rust_target
end

#supportedObject (readonly)

Returns the value of attribute supported.



7
8
9
# File 'lib/rb_sys/toolchain_info.rb', line 7

def supported
  @supported
end

Class Method Details

.allObject



10
11
12
# File 'lib/rb_sys/toolchain_info.rb', line 10

def all
  @all ||= DATA.keys.map { |k| new(k) }
end

.localObject



14
15
16
# File 'lib/rb_sys/toolchain_info.rb', line 14

def local
  @current ||= new(RbConfig::CONFIG["arch"])
end

Instance Method Details

#==(other) ⇒ Object



38
39
40
# File 'lib/rb_sys/toolchain_info.rb', line 38

def ==(other)
  @gem_platform == other.gem_platform
end

#supported?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/rb_sys/toolchain_info.rb', line 30

def supported?
  @supported
end

#to_sObject



34
35
36
# File 'lib/rb_sys/toolchain_info.rb', line 34

def to_s
  "#{gem_platform.cpu}-#{gem_platform.os}"
end