Add no-Xcode documentation for all classes, methods
This commit is contained in:
parent
1face808f5
commit
8793a68ee4
@ -200,7 +200,8 @@ module HomebrewArgvExtension
|
||||
value "env"
|
||||
end
|
||||
|
||||
# collect any supplied build flags into an array for reporting
|
||||
# If the user passes any flags that trigger building over installing from
|
||||
# a bottle, they are collected here and returned as an Array for checking.
|
||||
def collect_build_flags
|
||||
build_flags = []
|
||||
|
||||
|
||||
@ -56,7 +56,9 @@ class FormulaInstaller
|
||||
@pour_failed = false
|
||||
end
|
||||
|
||||
# called by install/reinstall/upgrade when no build tools are available
|
||||
# When no build tools are available and build flags are passed through ARGV,
|
||||
# it's necessary to interrupt the user before any sort of installation
|
||||
# can proceed. Only invoked when the user has no developer tools.
|
||||
def self.prevent_build_flags
|
||||
build_flags = ARGV.collect_build_flags
|
||||
|
||||
@ -232,6 +234,8 @@ class FormulaInstaller
|
||||
raise FormulaConflictError.new(formula, conflicts) unless conflicts.empty?
|
||||
end
|
||||
|
||||
# Compute and collect the dependencies needed by the formula currently
|
||||
# being installed.
|
||||
def compute_dependencies
|
||||
req_map, req_deps = expand_requirements
|
||||
check_requirements(req_map)
|
||||
@ -240,6 +244,9 @@ class FormulaInstaller
|
||||
deps
|
||||
end
|
||||
|
||||
# Check that each dependency in deps has a bottle available, terminating
|
||||
# abnormally with a BuildToolsError if one or more don't.
|
||||
# Only invoked when the user has no developer tools.
|
||||
def check_dependencies_bottled(deps)
|
||||
unbottled = deps.select do |dep, _|
|
||||
formula = dep.to_formula
|
||||
@ -352,6 +359,10 @@ class FormulaInstaller
|
||||
@show_header = true unless deps.empty?
|
||||
end
|
||||
|
||||
# Installs the relocation tools (as provided by the cctools formula) as a hard
|
||||
# dependency for every formula installed from a bottle when the user has no
|
||||
# developer tools. Invoked unless the formula explicitly sets
|
||||
# :any_skip_relocation in its bottle DSL.
|
||||
def install_relocation_tools
|
||||
cctools = CctoolsRequirement.new
|
||||
dependency = cctools.to_dependency
|
||||
|
||||
@ -36,6 +36,8 @@ module OS
|
||||
end
|
||||
end
|
||||
|
||||
# Locates a (working) copy of install_name_tool, guaranteed to function
|
||||
# whether the user has developer tools installed or not.
|
||||
def install_name_tool
|
||||
if File.executable?(path = "#{HOMEBREW_PREFIX}/opt/cctools/bin/install_name_tool")
|
||||
Pathname.new(path)
|
||||
@ -44,6 +46,8 @@ module OS
|
||||
end
|
||||
end
|
||||
|
||||
# Locates a (working) copy of otool, guaranteed to function whether the user
|
||||
# has developer tools installed or not.
|
||||
def otool
|
||||
if File.executable?(path = "#{HOMEBREW_PREFIX}/opt/cctools/bin/otool")
|
||||
Pathname.new(path)
|
||||
@ -52,6 +56,9 @@ module OS
|
||||
end
|
||||
end
|
||||
|
||||
# Checks if the user has any developer tools installed, either via Xcode
|
||||
# or the CLT. Convenient for guarding against formula builds when building
|
||||
# is impossible.
|
||||
def has_apple_developer_tools?
|
||||
Xcode.installed? || CLT.installed?
|
||||
end
|
||||
|
||||
@ -1,3 +1,8 @@
|
||||
# Represents a general requirement for utilities normally installed by Xcode,
|
||||
# the CLT, or provided by the cctools formula. In particular, this requirement
|
||||
# allows Homebrew to pull in the cctools formula and use its utilities to
|
||||
# perform relocation operations on systems that do not have either Xcode or the
|
||||
# CLT installed (but still want to install bottled formulae).
|
||||
class CctoolsRequirement < Requirement
|
||||
fatal true
|
||||
default_formula 'cctools'
|
||||
|
||||
@ -245,6 +245,7 @@ class Bottle
|
||||
@spec.compatible_cellar?
|
||||
end
|
||||
|
||||
# Does the bottle need to be relocated?
|
||||
def skip_relocation?
|
||||
@spec.skip_relocation?
|
||||
end
|
||||
@ -288,6 +289,7 @@ class BottleSpecification
|
||||
cellar == :any || cellar == :any_skip_relocation || cellar == HOMEBREW_CELLAR.to_s
|
||||
end
|
||||
|
||||
# Does the Bottle this BottleSpecification belongs to need to be relocated?
|
||||
def skip_relocation?
|
||||
cellar == :any_skip_relocation
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user