Clean up MacOS version method usage

The MacOS.version? family of methods (other than "leopard?") are poorly
defined and lead to confusing code. Replace them in formulae with more
explicit comparisons.

"MacOS.version" is a special version object that can be compared to
numerics, symbols, and strings using the standard Ruby comparison
methods.

The old methods were moved to compat when the version comparison code
was merged, and they must remain there "forever", but they should not be
used in new code.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This commit is contained in:
Jack Nagel 2012-09-04 23:04:01 -05:00
parent 95b9083744
commit 59d5a246e7
3 changed files with 7 additions and 4 deletions

View File

@ -165,6 +165,7 @@ class FailsWithLLVM
end
end
# TODO eventually some of these should print deprecation warnings
module MacOS extend self
def xcode_folder
Xcode.folder

View File

@ -1,5 +1,7 @@
module MacOS extend self
# This can be compared to numerics, strings, or symbols
# using the standard Ruby Comparable methods.
def version
require 'version'
MacOSVersion.new(MACOS_VERSION.to_s)
@ -221,7 +223,7 @@ module MacOS extend self
def bottles_supported?
# We support bottles on all versions of OS X except 32-bit Snow Leopard.
(Hardware.is_64_bit? or not MacOS.snow_leopard?) \
(Hardware.is_64_bit? or not MacOS.version >= :snow_leopard) \
and HOMEBREW_PREFIX.to_s == '/usr/local' \
and HOMEBREW_CELLAR.to_s == '/usr/local/Cellar' \
end

View File

@ -119,7 +119,7 @@ class << ENV
# we put our paths before X because we dupe some of the X libraries
paths << "#{MacSystem.x11_prefix}/lib/pkgconfig" << "#{MacSystem.x11_prefix}/share/pkgconfig" if x11?
# Mountain Lion no longer ships some .pcs; ensure we pick up our versions
paths << "#{HOMEBREW_REPOSITORY}/Library/Homebrew/pkgconfig" if MacOS.mountain_lion?
paths << "#{HOMEBREW_REPOSITORY}/Library/Homebrew/pkgconfig" if MacOS.version >= :mountain_lion
paths.to_path_s
end
@ -173,9 +173,9 @@ class << ENV
s = ""
s << 'b' if ARGV.build_bottle?
# Fix issue with sed barfing on unicode characters on Mountain Lion
s << 's' if MacOS.mountain_lion?
s << 's' if MacOS.version >= :mountain_lion
# Fix issue with 10.8 apr-1-config having broken paths
s << 'a' if MacOS.cat == :mountainlion
s << 'a' if MacOS.version == :mountain_lion
s
end