2020-10-10 14:16:11 +02:00
|
|
|
# typed: strict
|
2019-04-19 15:38:03 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2018-12-20 20:10:54 +00:00
|
|
|
module Hardware
|
2020-10-28 18:49:10 +11:00
|
|
|
sig { params(version: T.nilable(Version)).returns(Symbol) }
|
2021-09-29 17:43:47 -07:00
|
|
|
def self.oldest_cpu(version = nil)
|
|
|
|
version = if version
|
|
|
|
MacOS::Version.new(version.to_s)
|
|
|
|
else
|
|
|
|
MacOS.version
|
|
|
|
end
|
2020-07-08 20:53:10 +02:00
|
|
|
if CPU.arch == :arm64
|
|
|
|
:arm_vortex_tempest
|
2020-12-28 09:09:08 +00:00
|
|
|
# TODO: this cannot be re-enabled until either Rosetta 2 supports AVX
|
|
|
|
# instructions in bottles or Homebrew refuses to run under Rosetta 2 (when
|
|
|
|
# ARM support is sufficiently complete):
|
|
|
|
# https://github.com/Homebrew/homebrew-core/issues/67713
|
|
|
|
#
|
|
|
|
# elsif version >= :big_sur
|
|
|
|
# :ivybridge
|
2020-07-08 20:53:10 +02:00
|
|
|
elsif version >= :mojave
|
2018-12-20 20:10:54 +00:00
|
|
|
:nehalem
|
|
|
|
else
|
|
|
|
generic_oldest_cpu
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|