Reduce footprint of fails_with_llvm compat code
This commit is contained in:
parent
581e766809
commit
456386c9b1
@ -76,18 +76,18 @@ class Formula
|
|||||||
# up in the DSL section.
|
# up in the DSL section.
|
||||||
def fails_with_llvm msg=nil, data=nil
|
def fails_with_llvm msg=nil, data=nil
|
||||||
opoo "Calling fails_with_llvm in the install method is deprecated"
|
opoo "Calling fails_with_llvm in the install method is deprecated"
|
||||||
puts "Use the fails_with DSL instead."
|
puts "Use the fails_with DSL instead"
|
||||||
FailsWithLLVM.new(msg, data).handle_failure
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def fails_with_llvm?
|
def fails_with_llvm?
|
||||||
fails_with? :llvm
|
fails_with? :llvm
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.fails_with_llvm msg=nil, data=nil
|
def self.fails_with_llvm msg=nil, data={}
|
||||||
fails_with_llvm_reason = FailsWithLLVM.new(msg, 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 ||= Set.new
|
||||||
@cc_failures << fails_with_llvm_reason
|
@cc_failures << failure
|
||||||
end
|
end
|
||||||
|
|
||||||
def std_cmake_parameters
|
def std_cmake_parameters
|
||||||
@ -133,55 +133,6 @@ module HomebrewEnvExtension extend self
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class FailsWithLLVM
|
|
||||||
attr_reader :compiler, :build, :cause
|
|
||||||
|
|
||||||
def initialize msg=nil, data=nil
|
|
||||||
if msg.nil? or msg.kind_of? Hash
|
|
||||||
@cause = "(No specific reason was given)"
|
|
||||||
data = msg
|
|
||||||
else
|
|
||||||
@cause = msg
|
|
||||||
end
|
|
||||||
@build = (data.delete :build rescue nil).to_i
|
|
||||||
@compiler = :llvm
|
|
||||||
end
|
|
||||||
|
|
||||||
def handle_failure
|
|
||||||
return unless ENV.compiler == :llvm
|
|
||||||
|
|
||||||
# version 2336 is the latest version as of Xcode 4.2, so it is the
|
|
||||||
# latest version we have tested against so we will switch to GCC and
|
|
||||||
# bump this integer when Xcode 4.3 is released. TODO do that!
|
|
||||||
if build.to_i >= 2336
|
|
||||||
if MacOS::Xcode.version < "4.2"
|
|
||||||
opoo "Formula will not build with LLVM, using GCC"
|
|
||||||
ENV.gcc
|
|
||||||
else
|
|
||||||
opoo "Formula will not build with LLVM, trying Clang"
|
|
||||||
ENV.clang
|
|
||||||
end
|
|
||||||
return
|
|
||||||
end
|
|
||||||
opoo "Building with LLVM, but this formula is reported to not work with LLVM:"
|
|
||||||
puts
|
|
||||||
puts cause
|
|
||||||
puts
|
|
||||||
puts <<-EOS.undent
|
|
||||||
We are continuing anyway so if the build succeeds, please open a ticket with
|
|
||||||
the following information: #{MacOS.llvm_build_version}-#{MACOS_VERSION}. So
|
|
||||||
that we can update the formula accordingly. Thanks!
|
|
||||||
EOS
|
|
||||||
puts
|
|
||||||
if MacOS::Xcode.version < "4.2"
|
|
||||||
puts "If it doesn't work you can: brew install --use-gcc"
|
|
||||||
else
|
|
||||||
puts "If it doesn't work you can try: brew install --use-clang"
|
|
||||||
end
|
|
||||||
puts
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# TODO eventually some of these should print deprecation warnings
|
# TODO eventually some of these should print deprecation warnings
|
||||||
module MacOS extend self
|
module MacOS extend self
|
||||||
def xcode_folder
|
def xcode_folder
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user