formula: change some private API to public API
The following methods used in Homebrew/core are now public API: * `system` * `std_*_args` * `any_version_installed?` * `shared_library` * `rpath` * `loader_path` * `deuniversalize_machos` * `generate_completions_from_executable` Also remove duplicate typing in `generate_completions_from_executable`
This commit is contained in:
parent
1fdbc6fe5a
commit
b89d282d5c
@ -645,6 +645,8 @@ class Formula
|
|||||||
end
|
end
|
||||||
|
|
||||||
# If at least one version of {Formula} is installed.
|
# If at least one version of {Formula} is installed.
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig { returns(T::Boolean) }
|
sig { returns(T::Boolean) }
|
||||||
def any_version_installed?
|
def any_version_installed?
|
||||||
installed_prefixes.any? { |keg| (keg/AbstractTab::FILENAME).file? }
|
installed_prefixes.any? { |keg| (keg/AbstractTab::FILENAME).file? }
|
||||||
@ -1779,6 +1781,8 @@ class Formula
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Standard parameters for cabal-v2 builds.
|
# Standard parameters for cabal-v2 builds.
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig { returns(T::Array[String]) }
|
sig { returns(T::Array[String]) }
|
||||||
def std_cabal_v2_args
|
def std_cabal_v2_args
|
||||||
# cabal-install's dependency-resolution backtracking strategy can
|
# cabal-install's dependency-resolution backtracking strategy can
|
||||||
@ -1791,6 +1795,8 @@ class Formula
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Standard parameters for cargo builds.
|
# Standard parameters for cargo builds.
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig {
|
sig {
|
||||||
params(root: T.any(String, Pathname), path: T.any(String, Pathname)).returns(T::Array[String])
|
params(root: T.any(String, Pathname), path: T.any(String, Pathname)).returns(T::Array[String])
|
||||||
}
|
}
|
||||||
@ -1803,6 +1809,8 @@ class Formula
|
|||||||
# Setting `CMAKE_FIND_FRAMEWORK` to "LAST" tells CMake to search for our
|
# Setting `CMAKE_FIND_FRAMEWORK` to "LAST" tells CMake to search for our
|
||||||
# libraries before trying to utilize Frameworks, many of which will be from
|
# libraries before trying to utilize Frameworks, many of which will be from
|
||||||
# 3rd party installs.
|
# 3rd party installs.
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig {
|
sig {
|
||||||
params(
|
params(
|
||||||
install_prefix: T.any(String, Pathname),
|
install_prefix: T.any(String, Pathname),
|
||||||
@ -1824,6 +1832,8 @@ class Formula
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Standard parameters for configure builds.
|
# Standard parameters for configure builds.
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig {
|
sig {
|
||||||
params(
|
params(
|
||||||
prefix: T.any(String, Pathname),
|
prefix: T.any(String, Pathname),
|
||||||
@ -1836,6 +1846,8 @@ class Formula
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Standard parameters for Go builds.
|
# Standard parameters for Go builds.
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig {
|
sig {
|
||||||
params(output: T.any(String, Pathname),
|
params(output: T.any(String, Pathname),
|
||||||
ldflags: T.nilable(T.any(String, T::Array[String]))).returns(T::Array[String])
|
ldflags: T.nilable(T.any(String, T::Array[String]))).returns(T::Array[String])
|
||||||
@ -1847,12 +1859,16 @@ class Formula
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Standard parameters for meson builds.
|
# Standard parameters for meson builds.
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig { returns(T::Array[String]) }
|
sig { returns(T::Array[String]) }
|
||||||
def std_meson_args
|
def std_meson_args
|
||||||
["--prefix=#{prefix}", "--libdir=#{lib}", "--buildtype=release", "--wrap-mode=nofallback"]
|
["--prefix=#{prefix}", "--libdir=#{lib}", "--buildtype=release", "--wrap-mode=nofallback"]
|
||||||
end
|
end
|
||||||
|
|
||||||
# Standard parameters for npm builds.
|
# Standard parameters for npm builds.
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig { params(prefix: T.any(String, Pathname, FalseClass)).returns(T::Array[String]) }
|
sig { params(prefix: T.any(String, Pathname, FalseClass)).returns(T::Array[String]) }
|
||||||
def std_npm_args(prefix: libexec)
|
def std_npm_args(prefix: libexec)
|
||||||
require "language/node"
|
require "language/node"
|
||||||
@ -1863,6 +1879,8 @@ class Formula
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Standard parameters for pip builds.
|
# Standard parameters for pip builds.
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig {
|
sig {
|
||||||
params(prefix: T.any(String, Pathname, FalseClass),
|
params(prefix: T.any(String, Pathname, FalseClass),
|
||||||
build_isolation: T::Boolean).returns(T::Array[String])
|
build_isolation: T::Boolean).returns(T::Array[String])
|
||||||
@ -1889,6 +1907,8 @@ class Formula
|
|||||||
# shared_library("foo", "*") #=> foo.2.dylib, foo.1.dylib, foo.dylib
|
# shared_library("foo", "*") #=> foo.2.dylib, foo.1.dylib, foo.dylib
|
||||||
# shared_library("*") #=> foo.dylib, bar.dylib
|
# shared_library("*") #=> foo.dylib, bar.dylib
|
||||||
# ```
|
# ```
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig { params(name: String, version: T.nilable(T.any(String, Integer))).returns(String) }
|
sig { params(name: String, version: T.nilable(T.any(String, Integer))).returns(String) }
|
||||||
def shared_library(name, version = nil)
|
def shared_library(name, version = nil)
|
||||||
return "*.dylib" if name == "*" && (version.blank? || version == "*")
|
return "*.dylib" if name == "*" && (version.blank? || version == "*")
|
||||||
@ -1913,6 +1933,8 @@ class Formula
|
|||||||
# rpath(target: frameworks) #=> "@loader_path/../Frameworks"
|
# rpath(target: frameworks) #=> "@loader_path/../Frameworks"
|
||||||
# rpath(source: libexec/"bin") #=> "@loader_path/../../lib"
|
# rpath(source: libexec/"bin") #=> "@loader_path/../../lib"
|
||||||
# ```
|
# ```
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig { params(source: Pathname, target: Pathname).returns(String) }
|
sig { params(source: Pathname, target: Pathname).returns(String) }
|
||||||
def rpath(source: bin, target: lib)
|
def rpath(source: bin, target: lib)
|
||||||
unless target.to_s.start_with?(HOMEBREW_PREFIX)
|
unless target.to_s.start_with?(HOMEBREW_PREFIX)
|
||||||
@ -1922,6 +1944,9 @@ class Formula
|
|||||||
"#{loader_path}/#{target.relative_path_from(source)}"
|
"#{loader_path}/#{target.relative_path_from(source)}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Linker variable for the directory containing the program or shared object.
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig { returns(String) }
|
sig { returns(String) }
|
||||||
def loader_path
|
def loader_path
|
||||||
"@loader_path"
|
"@loader_path"
|
||||||
@ -1943,6 +1968,8 @@ class Formula
|
|||||||
#
|
#
|
||||||
# If called with no parameters, does this with all compatible
|
# If called with no parameters, does this with all compatible
|
||||||
# universal binaries in a {Formula}'s {Keg}.
|
# universal binaries in a {Formula}'s {Keg}.
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig { params(targets: T.nilable(T.any(Pathname, String))).void }
|
sig { params(targets: T.nilable(T.any(Pathname, String))).void }
|
||||||
def deuniversalize_machos(*targets)
|
def deuniversalize_machos(*targets)
|
||||||
if targets.none?
|
if targets.none?
|
||||||
@ -2049,13 +2076,14 @@ class Formula
|
|||||||
# "completions", "--selected-shell=bash")
|
# "completions", "--selected-shell=bash")
|
||||||
# ```
|
# ```
|
||||||
#
|
#
|
||||||
# @param commands [Pathname, String]
|
# @api public
|
||||||
|
# @param commands
|
||||||
# the path to the executable and any passed subcommand(s) to use for generating the completion scripts.
|
# the path to the executable and any passed subcommand(s) to use for generating the completion scripts.
|
||||||
# @param base_name [String]
|
# @param base_name
|
||||||
# the base name of the generated completion script. Defaults to the formula name.
|
# the base name of the generated completion script. Defaults to the formula name.
|
||||||
# @param shells [Array<Symbol>]
|
# @param shells
|
||||||
# the shells to generate completion scripts for. Defaults to `[:bash, :zsh, :fish]`.
|
# the shells to generate completion scripts for. Defaults to `[:bash, :zsh, :fish]`.
|
||||||
# @param shell_parameter_format [String, Symbol]
|
# @param shell_parameter_format
|
||||||
# specify how `shells` should each be passed to the `executable`. Takes either a String representing a
|
# specify how `shells` should each be passed to the `executable`. Takes either a String representing a
|
||||||
# prefix, or one of `[:flag, :arg, :none, :click]`. Defaults to plainly passing the shell.
|
# prefix, or one of `[:flag, :arg, :none, :click]`. Defaults to plainly passing the shell.
|
||||||
sig {
|
sig {
|
||||||
@ -2974,6 +3002,8 @@ class Formula
|
|||||||
# ```ruby
|
# ```ruby
|
||||||
# system "make", "install"
|
# system "make", "install"
|
||||||
# ```
|
# ```
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
sig { params(cmd: T.any(String, Pathname), args: T.any(String, Integer, Pathname, Symbol)).void }
|
sig { params(cmd: T.any(String, Pathname), args: T.any(String, Integer, Pathname, Symbol)).void }
|
||||||
def system(cmd, *args)
|
def system(cmd, *args)
|
||||||
verbose_using_dots = Homebrew::EnvConfig.verbose_using_dots?
|
verbose_using_dots = Homebrew::EnvConfig.verbose_using_dots?
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user