Skip to content
Snippets Groups Projects
Commit 525e5f79 authored by Jack Nagel's avatar Jack Nagel
Browse files

Remove knowledge of DSL implementation from initialize

parent 426737eb
No related branches found
No related tags found
No related merge requests found
......@@ -49,20 +49,27 @@ class CompilerFailure
end
end
def initialize compiler, &block
instance_eval(&block) if block_given?
def self.create(spec, &block)
# Non-Apple compilers are in the format fails_with compiler => version
if compiler.is_a? Hash
# currently the only compiler for this case is GCC
_, @major_version = compiler.first
@compiler = 'gcc-' + @major_version
if spec.is_a?(Hash)
_, major_version = spec.first
compiler = "gcc-#{major_version}"
# so fails_with :gcc => '4.8' simply marks all 4.8 releases incompatible
@version ||= @major_version + '.999'
version = "#{major_version}.999"
else
@compiler = compiler
@version ||= 9999
@version = @version.to_i
compiler = spec
version = 9999
major_version = nil
end
new(compiler, version, major_version, &block)
end
def initialize(compiler, version, major_version, &block)
@compiler = compiler
@version = version
@major_version = major_version
instance_eval(&block) if block_given?
end
end
......
......@@ -745,9 +745,9 @@ class Formula
# fails_with :gcc => '4.8' do
# version '4.8.1'
# end
def fails_with compiler, &block
def fails_with spec, &block
@cc_failures ||= Set.new
@cc_failures << CompilerFailure.new(compiler, &block)
@cc_failures << CompilerFailure.create(spec, &block)
end
def needs *standards
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment