diff --git a/Library/Homebrew/extend/os/linux/formula.rb b/Library/Homebrew/extend/os/linux/formula.rb index 97d7bf2519b47..3b4351d05749b 100644 --- a/Library/Homebrew/extend/os/linux/formula.rb +++ b/Library/Homebrew/extend/os/linux/formula.rb @@ -1,6 +1,12 @@ # frozen_string_literal: true class Formula + undef shared_library + + def shared_library(name, version = nil) + "#{name}.so#{"." unless version.nil?}#{version}" + end + class << self undef on_linux diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index ca7e93514e160..1f3a1ed033ff6 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -1407,6 +1407,10 @@ def std_meson_args ["--prefix=#{prefix}", "--libdir=#{lib}"] end + def shared_library(name, version = nil) + "#{name}.#{version}#{"." unless version.nil?}dylib" + end + # an array of all core {Formula} names # @private def self.core_names diff --git a/Library/Homebrew/test/os/linux/formula_spec.rb b/Library/Homebrew/test/os/linux/formula_spec.rb index 159a0838baadc..8e929290723aa 100644 --- a/Library/Homebrew/test/os/linux/formula_spec.rb +++ b/Library/Homebrew/test/os/linux/formula_spec.rb @@ -1,5 +1,6 @@ # frozen_string_literal: true +require "test/support/fixtures/testball" require "formula" describe Formula do @@ -101,4 +102,12 @@ expect(f.resources.first.url).to eq("on_linux") end end + + describe "#shared_library" do + it "generates a shared library string" do + f = Testball.new + expect(f.shared_library("foobar")).to eq("foobar.so") + expect(f.shared_library("foobar", 2)).to eq("foobar.so.2") + end + end end diff --git a/Library/Homebrew/test/os/mac/formula_spec.rb b/Library/Homebrew/test/os/mac/formula_spec.rb index 4fb4400c7f747..e76cb05214fe9 100644 --- a/Library/Homebrew/test/os/mac/formula_spec.rb +++ b/Library/Homebrew/test/os/mac/formula_spec.rb @@ -1,5 +1,6 @@ # frozen_string_literal: true +require "test/support/fixtures/testball" require "formula" describe Formula do @@ -108,4 +109,12 @@ expect(f.resources.first.url).to eq("resource_macos") end end + + describe "#shared_library" do + it "generates a shared library string" do + f = Testball.new + expect(f.shared_library("foobar")).to eq("foobar.dylib") + expect(f.shared_library("foobar", 2)).to eq("foobar.2.dylib") + end + end end