brew/Library/Homebrew/hardware.rb

98 lines
1.5 KiB
Ruby
Raw Normal View History

require "os"
2013-10-18 12:56:51 -05:00
2016-04-25 18:00:01 +01:00
module Hardware
class CPU
INTEL_32BIT_ARCHS = [:i386].freeze
INTEL_64BIT_ARCHS = [:x86_64].freeze
PPC_32BIT_ARCHS = [:ppc, :ppc7400, :ppc7450, :ppc970].freeze
PPC_64BIT_ARCHS = [:ppc64].freeze
2016-04-25 18:00:01 +01:00
class << self
OPTIMIZATION_FLAGS = {
:penryn => "-march=core2 -msse4.1",
:core2 => "-march=core2",
:core => "-march=prescott",
:dunno => "",
}.freeze
def optimization_flags
OPTIMIZATION_FLAGS
end
def arch_32_bit
:i386
end
def arch_64_bit
:x86_64
end
2016-04-25 18:00:01 +01:00
def type
:dunno
end
2016-04-25 18:00:01 +01:00
def family
:dunno
end
2016-04-25 18:00:01 +01:00
def cores
1
end
2016-04-25 18:00:01 +01:00
def bits
64
end
2016-04-25 18:00:01 +01:00
def is_32_bit?
bits == 32
end
2016-04-25 18:00:01 +01:00
def is_64_bit?
bits == 64
end
2016-04-25 18:00:01 +01:00
def intel?
type == :intel
end
2016-04-25 18:00:01 +01:00
def ppc?
type == :ppc
end
2016-04-25 18:00:01 +01:00
def features
[]
end
2015-02-23 21:38:36 -05:00
2016-04-25 18:00:01 +01:00
def feature?(name)
features.include?(name)
end
2015-02-23 21:38:36 -05:00
end
end
def self.cores_as_words
2013-06-13 12:04:58 -05:00
case Hardware::CPU.cores
when 1 then "single"
when 2 then "dual"
when 4 then "quad"
when 6 then "hexa"
when 8 then "octa"
else
2013-06-13 12:04:58 -05:00
Hardware::CPU.cores
end
end
2013-06-06 16:02:27 -05:00
def self.oldest_cpu
if Hardware::CPU.intel?
2013-06-06 16:02:27 -05:00
if Hardware::CPU.is_64_bit?
:core2
else
:core
end
else
Hardware::CPU.family
end
end
end
2016-04-25 18:00:01 +01:00
require "extend/os/hardware"