aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMike McQuaid2017-10-18 09:43:45 +0100
committerGitHub2017-10-18 09:43:45 +0100
commitc7d21dadfef2b1d629c9e7de034cc99afea5b2b4 (patch)
tree532f6cb210068cbddaca3efa9c363335237a0cbf /Library
parentc4e8c7906d12399b34188cd3395b8f9d30dc89b3 (diff)
parent230c87aff006e36bd65bb6dcc8a3877aad2c9290 (diff)
downloadbrew-c7d21dadfef2b1d629c9e7de034cc99afea5b2b4.tar.bz2
Merge pull request #3270 from sjackman/os-requirement
Add depends_on :linux and :macos
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/compat/requirements.rb1
-rw-r--r--Library/Homebrew/dependency_collector.rb3
-rw-r--r--Library/Homebrew/requirements.rb3
-rw-r--r--Library/Homebrew/requirements/linux_requirement.rb9
-rw-r--r--Library/Homebrew/requirements/macos_requirement.rb31
-rw-r--r--Library/Homebrew/requirements/minimum_macos_requirement.rb20
-rw-r--r--Library/Homebrew/test/os_requirement_spec.rb18
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