From e05a509fb6c7c69003a1af58ec24bf0be55dd8b0 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Wed, 23 Jan 2013 00:26:30 -0600 Subject: [PATCH] Tag Xcode and CLT requirements as build-time This way they can be skipped when installing bottles. --- Library/Homebrew/dependencies.rb | 5 +++++ Library/Homebrew/requirements.rb | 2 ++ Library/Homebrew/test/test_requirement.rb | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/Library/Homebrew/dependencies.rb b/Library/Homebrew/dependencies.rb index 35c411cfa3..c9ec0af94a 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 ab7b826030..b1f708c0cb 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 e8803ed92e..172f0bdef6 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