Reorganize compat
This commit is contained in:
parent
290a93ea75
commit
3be67f7252
7
Library/Homebrew/compat.rb
Normal file
7
Library/Homebrew/compat.rb
Normal file
@ -0,0 +1,7 @@
|
||||
require 'compat/env'
|
||||
require 'compat/fails_with_llvm'
|
||||
require 'compat/formula'
|
||||
require 'compat/hardware'
|
||||
require 'compat/macos'
|
||||
require 'compat/md5'
|
||||
require 'compat/version'
|
||||
@ -1,167 +0,0 @@
|
||||
def x11_installed?
|
||||
MacOS::X11.installed?
|
||||
end
|
||||
|
||||
def snow_leopard_64?
|
||||
MacOS.prefer_64_bit?
|
||||
end
|
||||
|
||||
class Formula
|
||||
# in compatability because the naming is somewhat confusing
|
||||
def self.resolve_alias name
|
||||
opoo 'Formula.resolve_alias is deprecated and will eventually be removed'
|
||||
opoo 'Use Formula.canonical_name instead.'
|
||||
|
||||
# Don't resolve paths or URLs
|
||||
return name if name.include?("/")
|
||||
|
||||
aka = HOMEBREW_REPOSITORY+"Library/Aliases"+name
|
||||
if aka.file?
|
||||
aka.realpath.basename('.rb').to_s
|
||||
else
|
||||
name
|
||||
end
|
||||
end
|
||||
|
||||
# This used to be called in "def install", but should now be used
|
||||
# up in the DSL section.
|
||||
def fails_with_llvm msg=nil, data=nil
|
||||
opoo "Calling fails_with_llvm in the install method is deprecated"
|
||||
puts "Use the fails_with DSL instead"
|
||||
end
|
||||
|
||||
def fails_with_llvm?
|
||||
fails_with? :llvm
|
||||
end
|
||||
|
||||
def self.fails_with_llvm msg=nil, data={}
|
||||
case msg when Hash then data = msg end
|
||||
failure = CompilerFailure.new(:llvm) { build(data.delete(:build).to_i) }
|
||||
@cc_failures ||= Set.new
|
||||
@cc_failures << failure
|
||||
end
|
||||
|
||||
def std_cmake_parameters
|
||||
"-DCMAKE_INSTALL_PREFIX='#{prefix}' -DCMAKE_BUILD_TYPE=None -DCMAKE_FIND_FRAMEWORK=LAST -Wno-dev"
|
||||
end
|
||||
|
||||
class << self
|
||||
def bottle_sha1 val=nil
|
||||
val.nil? ? @bottle_sha1 : @bottle_sha1 = val
|
||||
end
|
||||
end
|
||||
|
||||
def self.all
|
||||
opoo "Formula.all is deprecated, use Formula.map instead"
|
||||
map
|
||||
end
|
||||
end
|
||||
|
||||
class UnidentifiedFormula < Formula
|
||||
end
|
||||
|
||||
module HomebrewEnvExtension extend self
|
||||
def use_clang?
|
||||
compiler == :clang
|
||||
end
|
||||
|
||||
def use_gcc?
|
||||
compiler == :gcc
|
||||
end
|
||||
|
||||
def use_llvm?
|
||||
compiler == :llvm
|
||||
end
|
||||
end
|
||||
|
||||
# TODO eventually some of these should print deprecation warnings
|
||||
module MacOS extend self
|
||||
def xcode_folder
|
||||
Xcode.folder
|
||||
end
|
||||
|
||||
def xcode_prefix
|
||||
Xcode.prefix
|
||||
end
|
||||
|
||||
def xcode_installed?
|
||||
Xcode.installed?
|
||||
end
|
||||
|
||||
def xcode_version
|
||||
Xcode.version
|
||||
end
|
||||
|
||||
def clt_installed?
|
||||
CLT.installed?
|
||||
end
|
||||
|
||||
def clt_version?
|
||||
CLT.version
|
||||
end
|
||||
|
||||
def x11_installed?
|
||||
X11.installed?
|
||||
end
|
||||
|
||||
def x11_prefix
|
||||
X11.prefix
|
||||
end
|
||||
|
||||
def leopard?
|
||||
10.5 == MACOS_VERSION
|
||||
end
|
||||
|
||||
def snow_leopard?
|
||||
10.6 <= MACOS_VERSION # Actually Snow Leopard or newer
|
||||
end
|
||||
alias_method :snow_leopard_or_newer?, :snow_leopard?
|
||||
|
||||
def lion?
|
||||
10.7 <= MACOS_VERSION # Actually Lion or newer
|
||||
end
|
||||
alias_method :lion_or_newer?, :lion?
|
||||
|
||||
def mountain_lion?
|
||||
10.8 <= MACOS_VERSION # Actually Mountain Lion or newer
|
||||
end
|
||||
alias_method :mountain_lion_or_newer?, :mountain_lion?
|
||||
|
||||
def macports_or_fink_installed?
|
||||
not MacOS.macports_or_fink.empty?
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
class Version
|
||||
def slice *args
|
||||
opoo "Calling slice on versions is deprecated, use: to_s.slice"
|
||||
to_s.slice(*args)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
# MD5 support
|
||||
class Formula
|
||||
def self.md5(val)
|
||||
@stable ||= SoftwareSpec.new
|
||||
@stable.md5(val)
|
||||
end
|
||||
end
|
||||
|
||||
class SoftwareSpec
|
||||
def md5(val)
|
||||
@checksum = Checksum.new(:md5, val)
|
||||
end
|
||||
end
|
||||
|
||||
class Pathname
|
||||
def md5
|
||||
require 'digest/md5'
|
||||
opoo <<-EOS.undent
|
||||
MD5 support is deprecated and will be removed in a future version.
|
||||
Please switch this formula to #{Checksum::TYPES.map { |t| t.to_s.upcase } * ' or '}.
|
||||
EOS
|
||||
incremental_hash(Digest::MD5)
|
||||
end
|
||||
end
|
||||
13
Library/Homebrew/compat/env.rb
Normal file
13
Library/Homebrew/compat/env.rb
Normal file
@ -0,0 +1,13 @@
|
||||
module HomebrewEnvExtension
|
||||
def use_clang?
|
||||
compiler == :clang
|
||||
end
|
||||
|
||||
def use_gcc?
|
||||
compiler == :gcc
|
||||
end
|
||||
|
||||
def use_llvm?
|
||||
compiler == :llvm
|
||||
end
|
||||
end
|
||||
17
Library/Homebrew/compat/fails_with_llvm.rb
Normal file
17
Library/Homebrew/compat/fails_with_llvm.rb
Normal file
@ -0,0 +1,17 @@
|
||||
class Formula
|
||||
def fails_with_llvm msg=nil, data=nil
|
||||
opoo "Calling fails_with_llvm in the install method is deprecated"
|
||||
puts "Use the fails_with DSL instead"
|
||||
end
|
||||
|
||||
def fails_with_llvm?
|
||||
fails_with? :llvm
|
||||
end
|
||||
|
||||
def self.fails_with_llvm msg=nil, data={}
|
||||
case msg when Hash then data = msg end
|
||||
failure = CompilerFailure.new(:llvm) { build(data.delete(:build).to_i) }
|
||||
@cc_failures ||= Set.new
|
||||
@cc_failures << failure
|
||||
end
|
||||
end
|
||||
29
Library/Homebrew/compat/formula.rb
Normal file
29
Library/Homebrew/compat/formula.rb
Normal file
@ -0,0 +1,29 @@
|
||||
module FormulaCompat
|
||||
def x11_installed?
|
||||
MacOS::X11.installed?
|
||||
end
|
||||
|
||||
def snow_leopard_64?
|
||||
MacOS.prefer_64_bit?
|
||||
end
|
||||
end
|
||||
|
||||
class Formula
|
||||
include FormulaCompat
|
||||
extend FormulaCompat
|
||||
|
||||
def std_cmake_parameters
|
||||
"-DCMAKE_INSTALL_PREFIX='#{prefix}' -DCMAKE_BUILD_TYPE=None -DCMAKE_FIND_FRAMEWORK=LAST -Wno-dev"
|
||||
end
|
||||
|
||||
def self.bottle_sha1(*)
|
||||
end
|
||||
|
||||
def self.all
|
||||
opoo "Formula.all is deprecated, use Formula.map instead"
|
||||
map
|
||||
end
|
||||
end
|
||||
|
||||
class UnidentifiedFormula < Formula
|
||||
end
|
||||
56
Library/Homebrew/compat/macos.rb
Normal file
56
Library/Homebrew/compat/macos.rb
Normal file
@ -0,0 +1,56 @@
|
||||
module MacOS
|
||||
def xcode_folder
|
||||
Xcode.folder
|
||||
end
|
||||
|
||||
def xcode_prefix
|
||||
Xcode.prefix
|
||||
end
|
||||
|
||||
def xcode_installed?
|
||||
Xcode.installed?
|
||||
end
|
||||
|
||||
def xcode_version
|
||||
Xcode.version
|
||||
end
|
||||
|
||||
def clt_installed?
|
||||
CLT.installed?
|
||||
end
|
||||
|
||||
def clt_version?
|
||||
CLT.version
|
||||
end
|
||||
|
||||
def x11_installed?
|
||||
X11.installed?
|
||||
end
|
||||
|
||||
def x11_prefix
|
||||
X11.prefix
|
||||
end
|
||||
|
||||
def leopard?
|
||||
version == 10.5
|
||||
end
|
||||
|
||||
def snow_leopard?
|
||||
version >= 10.6
|
||||
end
|
||||
alias_method :snow_leopard_or_newer?, :snow_leopard?
|
||||
|
||||
def lion?
|
||||
version >= 10.7
|
||||
end
|
||||
alias_method :lion_or_newer?, :lion?
|
||||
|
||||
def mountain_lion?
|
||||
version >= 10.8
|
||||
end
|
||||
alias_method :mountain_lion_or_newer?, :mountain_lion?
|
||||
|
||||
def macports_or_fink_installed?
|
||||
not MacOS.macports_or_fink.empty?
|
||||
end
|
||||
end
|
||||
23
Library/Homebrew/compat/md5.rb
Normal file
23
Library/Homebrew/compat/md5.rb
Normal file
@ -0,0 +1,23 @@
|
||||
class Formula
|
||||
def self.md5(val)
|
||||
@stable ||= SoftwareSpec.new
|
||||
@stable.md5(val)
|
||||
end
|
||||
end
|
||||
|
||||
class SoftwareSpec
|
||||
def md5(val)
|
||||
@checksum = Checksum.new(:md5, val)
|
||||
end
|
||||
end
|
||||
|
||||
class Pathname
|
||||
def md5
|
||||
require 'digest/md5'
|
||||
opoo <<-EOS.undent
|
||||
MD5 support is deprecated and will be removed in a future version.
|
||||
Please switch this formula to #{Checksum::TYPES.map { |t| t.to_s.upcase } * ' or '}.
|
||||
EOS
|
||||
incremental_hash(Digest::MD5)
|
||||
end
|
||||
end
|
||||
6
Library/Homebrew/compat/version.rb
Normal file
6
Library/Homebrew/compat/version.rb
Normal file
@ -0,0 +1,6 @@
|
||||
class Version
|
||||
def slice *args
|
||||
opoo "Calling slice on versions is deprecated, use: to_s.slice"
|
||||
to_s.slice(*args)
|
||||
end
|
||||
end
|
||||
@ -93,9 +93,6 @@ FORMULA_META_FILES = Metafiles.new
|
||||
ISSUES_URL = "https://github.com/mxcl/homebrew/wiki/troubleshooting"
|
||||
HOMEBREW_PULL_URL_REGEX = 'https:\/\/github.com\/(\w+)\/homebrew(-\w+)?\/(pull\/(\d+)|commit\/\w{4,40})'
|
||||
|
||||
unless ARGV.include? "--no-compat" or ENV['HOMEBREW_NO_COMPAT']
|
||||
$:.unshift(File.expand_path("#{__FILE__}/../compat"))
|
||||
require 'compatibility'
|
||||
end
|
||||
require 'compat' unless ARGV.include? "--no-compat" or ENV['HOMEBREW_NO_COMPAT']
|
||||
|
||||
ORIGINAL_PATHS = ENV['PATH'].split(':').map{ |p| Pathname.new(p).expand_path rescue nil }.compact.freeze
|
||||
|
||||
@ -1,5 +1,3 @@
|
||||
require 'hardware_compat'
|
||||
|
||||
class Hardware
|
||||
module CPU extend self
|
||||
def type
|
||||
|
||||
@ -67,10 +67,7 @@ def shutup
|
||||
end
|
||||
end
|
||||
|
||||
unless ARGV.include? "--no-compat" or ENV['HOMEBREW_NO_COMPAT']
|
||||
$:.unshift(File.expand_path("#{ABS__FILE__}/../../compat"))
|
||||
require 'compatibility'
|
||||
end
|
||||
require 'compat' unless ARGV.include? "--no-compat" or ENV['HOMEBREW_NO_COMPAT']
|
||||
|
||||
require 'test/unit' # must be after at_exit
|
||||
require 'extend/ARGV' # needs to be after test/unit to avoid conflict with OptionsParser
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user