From 7531dfc21994a005a2d832b8c83eaa7ddd67a007 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Sat, 21 Sep 2013 19:27:24 -0500 Subject: [PATCH] Allow explicitly requiring universal deps Previously, instructing Homebrew that all dependencies should be built universal could be accomplished by redefining BuildOptions#universal? in the class body: def build.universal? true end However, the build object is no longer shared by all specs, so this is insufficient. Instead, a new DSL method, "require_universal_deps", can be used. This feature is almost exclusively for wine, which requires universal deps but does not itself have a universal option, since it is always built 32-bit. --- Library/Homebrew/build_options.rb | 5 +++-- Library/Homebrew/formula.rb | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/build_options.rb b/Library/Homebrew/build_options.rb index a1069694e9..3bd78c8648 100644 --- a/Library/Homebrew/build_options.rb +++ b/Library/Homebrew/build_options.rb @@ -3,9 +3,10 @@ require 'options' # This class holds the build-time options defined for a Formula, # and provides named access to those options during install. class BuildOptions - attr_accessor :args include Enumerable + attr_accessor :args + attr_accessor :universal attr_reader :options protected :options @@ -86,7 +87,7 @@ class BuildOptions # True if the user requested a universal build. def universal? - args.include?('--universal') && has_option?('universal') + universal || args.include?('--universal') && has_option?('universal') end # Request a 32-bit only build. diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 35dc9a08d2..90ab6e66e7 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -777,6 +777,10 @@ class Formula @cc_failures << CompilerFailure.new(compiler, &block) end + def require_universal_deps + specs.each { |spec| spec.build.universal = true } + end + def test &block return @test unless block_given? @test_defined = true