diff options
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/dependencies.rb | 5 | ||||
| -rw-r--r-- | Library/Homebrew/requirements.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_requirement.rb | 5 |
3 files changed, 12 insertions, 0 deletions
diff --git a/Library/Homebrew/dependencies.rb b/Library/Homebrew/dependencies.rb index 35c411cfa..c9ec0af94 100644 --- a/Library/Homebrew/dependencies.rb +++ b/Library/Homebrew/dependencies.rb @@ -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 diff --git a/Library/Homebrew/requirements.rb b/Library/Homebrew/requirements.rb index ab7b82603..b1f708c0c 100644 --- a/Library/Homebrew/requirements.rb +++ b/Library/Homebrew/requirements.rb @@ -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? diff --git a/Library/Homebrew/test/test_requirement.rb b/Library/Homebrew/test/test_requirement.rb index e8803ed92..172f0bdef 100644 --- a/Library/Homebrew/test/test_requirement.rb +++ b/Library/Homebrew/test/test_requirement.rb @@ -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 |
