Move compiler failure matching logic into failure object

This commit is contained in:
Jack Nagel 2014-08-03 10:47:47 -05:00
parent e5d6247ae7
commit 8e8b9acc01
2 changed files with 8 additions and 7 deletions

View File

@ -48,6 +48,12 @@ class CompilerFailure
instance_eval(&block) if block_given?
end
def ===(compiler)
name == compiler.name &&
major_version == compiler.major_version &&
version >= (compiler.version || 0)
end
MESSAGES = {
:cxx11 => "This compiler does not support C++11"
}

View File

@ -231,13 +231,8 @@ class Formula
self.class.keg_only_reason
end
def fails_with? cc
(self.class.cc_failures || []).any? do |failure|
# Major version check distinguishes between, e.g.,
# GCC 4.7.1 and GCC 4.8.2, where a comparison is meaningless
failure.name == cc.name && failure.major_version == cc.major_version &&
failure.version >= (cc.version || 0)
end
def fails_with? compiler
(self.class.cc_failures || []).any? { |failure| failure === compiler }
end
# sometimes the formula cleaner breaks things