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
|
|
|
extend T::Sig
|
|
|
|
sig { params(version: T.nilable(Version)).returns(Symbol) }
|
2019-01-28 19:31:21 +00:00
|
|
|
def self.oldest_cpu(version = MacOS.version)
|
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
|