diff options
| author | Mike McQuaid | 2017-10-18 09:43:45 +0100 |
|---|---|---|
| committer | GitHub | 2017-10-18 09:43:45 +0100 |
| commit | c7d21dadfef2b1d629c9e7de034cc99afea5b2b4 (patch) | |
| tree | 532f6cb210068cbddaca3efa9c363335237a0cbf /Library/Homebrew | |
| parent | c4e8c7906d12399b34188cd3395b8f9d30dc89b3 (diff) | |
| parent | 230c87aff006e36bd65bb6dcc8a3877aad2c9290 (diff) | |
| download | brew-c7d21dadfef2b1d629c9e7de034cc99afea5b2b4.tar.bz2 | |
Merge pull request #3270 from sjackman/os-requirement
Add depends_on :linux and :macos
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/compat/requirements.rb | 1 | ||||
| -rw-r--r-- | Library/Homebrew/dependency_collector.rb | 3 | ||||
| -rw-r--r-- | Library/Homebrew/requirements.rb | 3 | ||||
| -rw-r--r-- | Library/Homebrew/requirements/linux_requirement.rb | 9 | ||||
| -rw-r--r-- | Library/Homebrew/requirements/macos_requirement.rb | 31 | ||||
| -rw-r--r-- | Library/Homebrew/requirements/minimum_macos_requirement.rb | 20 | ||||
| -rw-r--r-- | Library/Homebrew/test/os_requirement_spec.rb | 18 |
7 files changed, 63 insertions, 22 deletions
diff --git a/Library/Homebrew/compat/requirements.rb b/Library/Homebrew/compat/requirements.rb index 77760d1dc..3886cd7c7 100644 --- a/Library/Homebrew/compat/requirements.rb +++ b/Library/Homebrew/compat/requirements.rb @@ -17,3 +17,4 @@ PythonDependency = PythonRequirement TuntapDependency = TuntapRequirement X11Dependency = X11Requirement ConflictsWithBinaryOsxfuse = NonBinaryOsxfuseRequirement +MinimumMacOSRequirement = MacOSRequirement diff --git a/Library/Homebrew/dependency_collector.rb b/Library/Homebrew/dependency_collector.rb index f855669e0..bc0246dd2 100644 --- a/Library/Homebrew/dependency_collector.rb +++ b/Library/Homebrew/dependency_collector.rb @@ -105,7 +105,8 @@ class DependencyCollector case spec when :x11 then X11Requirement.new(spec.to_s, tags) when :xcode then XcodeRequirement.new(tags) - when :macos then MinimumMacOSRequirement.new(tags) + when :linux then LinuxRequirement.new(tags) + when :macos then MacOSRequirement.new(tags) when :mysql then MysqlRequirement.new(tags) when :postgresql then PostgresqlRequirement.new(tags) when :gpg then GPG2Requirement.new(tags) diff --git a/Library/Homebrew/requirements.rb b/Library/Homebrew/requirements.rb index 553beb2a2..bac7d5790 100644 --- a/Library/Homebrew/requirements.rb +++ b/Library/Homebrew/requirements.rb @@ -2,7 +2,8 @@ require "requirement" require "requirements/fortran_requirement" require "requirements/gpg2_requirement" require "requirements/language_module_requirement" -require "requirements/minimum_macos_requirement" +require "requirements/linux_requirement" +require "requirements/macos_requirement" require "requirements/maximum_macos_requirement" require "requirements/mpi_requirement" require "requirements/osxfuse_requirement" diff --git a/Library/Homebrew/requirements/linux_requirement.rb b/Library/Homebrew/requirements/linux_requirement.rb new file mode 100644 index 000000000..cb4666e56 --- /dev/null +++ b/Library/Homebrew/requirements/linux_requirement.rb @@ -0,0 +1,9 @@ +class LinuxRequirement < Requirement + fatal true + + satisfy(build_env: false) { OS.linux? } + + def message + "Linux is required." + end +end diff --git a/Library/Homebrew/requirements/macos_requirement.rb b/Library/Homebrew/requirements/macos_requirement.rb new file mode 100644 index 000000000..c89144d2c --- /dev/null +++ b/Library/Homebrew/requirements/macos_requirement.rb @@ -0,0 +1,31 @@ +require "requirement" + +class MacOSRequirement < Requirement + fatal true + + def initialize(tags = []) + @version = MacOS::Version.from_symbol(tags.first) unless tags.empty? + super + end + + def minimum_version_specified? + OS.mac? && @version + end + + satisfy(build_env: false) do + next MacOS.version >= @version if minimum_version_specified? + next true if OS.mac? + next true if @version + false + end + + def message + return "macOS is required." unless minimum_version_specified? + "macOS #{@version.pretty_name} or newer is required." + end + + def display_s + return "macOS is required" unless minimum_version_specified? + "macOS >= #{@version}" + end +end diff --git a/Library/Homebrew/requirements/minimum_macos_requirement.rb b/Library/Homebrew/requirements/minimum_macos_requirement.rb deleted file mode 100644 index 2cb63f740..000000000 --- a/Library/Homebrew/requirements/minimum_macos_requirement.rb +++ /dev/null @@ -1,20 +0,0 @@ -require "requirement" - -class MinimumMacOSRequirement < Requirement - fatal true - - def initialize(tags) - @version = MacOS::Version.from_symbol(tags.first) - super - end - - satisfy(build_env: false) { MacOS.version >= @version } - - def message - "macOS #{@version.pretty_name} or newer is required." - end - - def display_s - "macOS >= #{@version}" - end -end diff --git a/Library/Homebrew/test/os_requirement_spec.rb b/Library/Homebrew/test/os_requirement_spec.rb new file mode 100644 index 000000000..87f86231c --- /dev/null +++ b/Library/Homebrew/test/os_requirement_spec.rb @@ -0,0 +1,18 @@ +require "requirements/linux_requirement" +require "requirements/macos_requirement" + +describe LinuxRequirement do + describe "#satisfied?" do + it "returns true if OS is Linux" do + expect(subject.satisfied?).to eq(OS.linux?) + end + end +end + +describe MacOSRequirement do + describe "#satisfied?" do + it "returns true if OS is macOS" do + expect(subject.satisfied?).to eq(OS.mac?) + end + end +end |
