Push dependency option generation into BuildOptions

This commit is contained in:
Jack Nagel 2013-08-31 16:10:35 -05:00
parent 6ed24d3877
commit 0c75f2d280
2 changed files with 10 additions and 14 deletions

View File

@ -20,6 +20,15 @@ class BuildOptions
@options << Option.new(name, description)
end
def add_dep_option(dep)
name = dep.name.split("/").last # strip any tap prefix
if dep.optional? && !has_option?("with-#{name}")
add("with-#{name}", "Build with #{name} support")
elsif dep.recommended? && !has_option?("without-#{name}")
add("without-#{name}", "Build without #{name} support")
end
end
def has_option? name
any? { |opt| opt.name == name }
end

View File

@ -692,7 +692,7 @@ class Formula
def depends_on dep
d = dependencies.add(dep)
post_depends_on(d) unless d.nil?
build.add_dep_option(d) unless d.nil?
end
def option name, description=nil
@ -754,19 +754,6 @@ class Formula
@test_defined = true
@test = block
end
private
def post_depends_on(dep)
# Generate with- or without- options for optional and recommended
# dependencies and requirements
name = dep.name.split("/").last # strip any tap prefix
if dep.optional? && !build.has_option?("with-#{name}")
build.add("with-#{name}", "Build with #{name} support")
elsif dep.recommended? && !build.has_option?("without-#{name}")
build.add("without-#{name}", "Build without #{name} support")
end
end
end
end