Tag Xcode and CLT requirements as build-time

This way they can be skipped when installing bottles.
This commit is contained in:
Jack Nagel 2013-01-23 00:26:30 -06:00
parent 620c063f8c
commit e05a509fb6
3 changed files with 12 additions and 0 deletions

View File

@ -229,6 +229,7 @@ class Requirement
def initialize(*tags)
@tags = tags.flatten.compact
@tags << :build if self.class.build
end
# The message to show when the requirement is not met.
@ -287,6 +288,10 @@ class Requirement
val.nil? ? @fatal : @fatal = val
end
def build(val=nil)
val.nil? ? @build : @build = val
end
def satisfy(options={}, &block)
@satisfied ||= Requirement::Satisfier.new(options, &block)
end

View File

@ -204,6 +204,7 @@ end
class XcodeDependency < Requirement
fatal true
build true
satisfy(:build_env => false) { MacOS::Xcode.installed? }
@ -274,6 +275,7 @@ end
class CLTDependency < Requirement
fatal true
build true
def satisfied?
MacOS::CLT.installed?

View File

@ -87,4 +87,9 @@ class RequirementTests < Test::Unit::TestCase
req.modify_build_environment
end
def test_dsl_build
req = Class.new(Requirement) { build true }.new
assert req.build?
end
end