diff options
| author | Mike McQuaid | 2017-12-29 15:41:56 +0000 |
|---|---|---|
| committer | GitHub | 2017-12-29 15:41:56 +0000 |
| commit | c2e1b3cccff1056248bdc231c13ff3d2c9f572ff (patch) | |
| tree | 8e83eaf335034ebdc1c703e21cd130eeef73bee1 /Library/Homebrew/requirements | |
| parent | 2259e369eaa943d885605c8643819eeac00ab62e (diff) | |
| parent | e8fa6f9ad198f3746aaa86512708b95ea0c49d39 (diff) | |
| download | brew-c2e1b3cccff1056248bdc231c13ff3d2c9f572ff.tar.bz2 | |
Merge pull request #3603 from MikeMcQuaid/deprecate-some-requirements
Deprecate more requirements.
Diffstat (limited to 'Library/Homebrew/requirements')
4 files changed, 60 insertions, 75 deletions
diff --git a/Library/Homebrew/requirements/arch_requirement.rb b/Library/Homebrew/requirements/arch_requirement.rb new file mode 100644 index 000000000..0ff52dfa8 --- /dev/null +++ b/Library/Homebrew/requirements/arch_requirement.rb @@ -0,0 +1,21 @@ +require "requirement" + +class ArchRequirement < Requirement + fatal true + + def initialize(arch) + @arch = arch.pop + super + end + + satisfy(build_env: false) do + case @arch + when :x86_64 then MacOS.prefer_64_bit? + when :intel, :ppc then Hardware::CPU.type == @arch + end + end + + def message + "This formula requires an #{@arch} architecture." + end +end diff --git a/Library/Homebrew/requirements/gpg2_requirement.rb b/Library/Homebrew/requirements/gpg2_requirement.rb deleted file mode 100644 index 04097f9be..000000000 --- a/Library/Homebrew/requirements/gpg2_requirement.rb +++ /dev/null @@ -1,12 +0,0 @@ -require "requirement" -require "gpg" - -class GPG2Requirement < Requirement - fatal true - default_formula "gnupg" - - # GPGTools installs GnuPG 2.0.x as a `gpg` symlink pointing - # to `gpg2`. Our `gnupg` installs only a non-symlink `gpg`. - # The aim is to retain support for any version above 2.0. - satisfy(build_env: false) { Gpg.available? } -end diff --git a/Library/Homebrew/requirements/language_module_requirement.rb b/Library/Homebrew/requirements/language_module_requirement.rb deleted file mode 100644 index 5ddce7a66..000000000 --- a/Library/Homebrew/requirements/language_module_requirement.rb +++ /dev/null @@ -1,63 +0,0 @@ -require "requirement" - -class LanguageModuleRequirement < Requirement - fatal true - - def initialize(language, module_name, import_name = nil) - @language = language - @module_name = module_name - @import_name = import_name || module_name - super([language, module_name, import_name]) - end - - satisfy(build_env: false) { quiet_system(*the_test) } - - def message - s = <<~EOS - Unsatisfied dependency: #{@module_name} - Homebrew does not provide special #{@language.to_s.capitalize} dependencies; install with: - `#{command_line} #{@module_name}` - EOS - - unless [:python, :perl, :ruby].include? @language - s += <<~EOS - You may need to: `brew install #{@language}` - - EOS - end - - s - end - - def the_test - case @language - when :lua - ["/usr/bin/env", "luarocks-5.2", "show", @import_name.to_s] - when :lua51 - ["/usr/bin/env", "luarocks-5.1", "show", @import_name.to_s] - when :perl - ["/usr/bin/env", "perl", "-e", "use #{@import_name}"] - when :python - ["/usr/bin/env", "python", "-c", "import #{@import_name}"] - when :python3 - ["/usr/bin/env", "python3", "-c", "import #{@import_name}"] - when :ruby - ["/usr/bin/env", "ruby", "-rubygems", "-e", "require '#{@import_name}'"] - end - end - - def command_line - case @language - when :lua then "luarocks-5.2 install" - when :lua51 then "luarocks-5.1 install" - when :perl then "cpan -i" - when :python then "pip install" - when :python3 then "pip3 install" - when :ruby then "gem install" - end - end - - def display_s - "#{@module_name} (#{@language} module)" - end -end diff --git a/Library/Homebrew/requirements/xcode_requirement.rb b/Library/Homebrew/requirements/xcode_requirement.rb new file mode 100644 index 000000000..ff167c6fd --- /dev/null +++ b/Library/Homebrew/requirements/xcode_requirement.rb @@ -0,0 +1,39 @@ +require "requirement" + +class XcodeRequirement < Requirement + fatal true + + satisfy(build_env: false) { xcode_installed_version } + + def initialize(tags) + @version = tags.find { |tag| tags.delete(tag) if tag =~ /(\d\.)+\d/ } + super + end + + def xcode_installed_version + return false unless MacOS::Xcode.installed? + return true unless @version + MacOS::Xcode.version >= @version + end + + def message + version = " #{@version}" if @version + message = <<~EOS + A full installation of Xcode.app#{version} is required to compile this software. + Installing just the Command Line Tools is not sufficient. + EOS + if MacOS.version >= :lion + message + <<~EOS + Xcode can be installed from the App Store. + EOS + else + message + <<~EOS + Xcode can be installed from #{Formatter.url("https://developer.apple.com/download/more/")}. + EOS + end + end + + def inspect + "#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>" + end +end |
