50 lines
1.8 KiB
Ruby
50 lines
1.8 KiB
Ruby
# typed: strict
|
|
# frozen_string_literal: true
|
|
|
|
module SharedEnvExtension
|
|
sig {
|
|
params(
|
|
formula: T.nilable(Formula),
|
|
cc: T.nilable(String),
|
|
build_bottle: T.nilable(T::Boolean),
|
|
bottle_arch: T.nilable(String),
|
|
testing_formula: T::Boolean,
|
|
debug_symbols: T.nilable(T::Boolean),
|
|
).void
|
|
}
|
|
def setup_build_environment(formula: nil, cc: nil, build_bottle: false, bottle_arch: nil, testing_formula: false,
|
|
debug_symbols: false)
|
|
generic_shared_setup_build_environment(formula: formula, cc: cc, build_bottle: build_bottle,
|
|
bottle_arch: bottle_arch, testing_formula: testing_formula,
|
|
debug_symbols: debug_symbols)
|
|
|
|
# Normalise the system Perl version used, where multiple may be available
|
|
self["VERSIONER_PERL_VERSION"] = MacOS.preferred_perl_version
|
|
end
|
|
private :setup_build_environment
|
|
|
|
sig { returns(T::Boolean) }
|
|
def no_weak_imports_support?
|
|
return false if compiler != :clang
|
|
|
|
return false if !MacOS::Xcode.version.null? && MacOS::Xcode.version < "8.0"
|
|
return false if !MacOS::CLT.version.null? && MacOS::CLT.version < "8.0"
|
|
|
|
true
|
|
end
|
|
|
|
sig { returns(T::Boolean) }
|
|
def no_fixup_chains_support?
|
|
return false if MacOS.version <= :catalina
|
|
|
|
# NOTE: `-version_details` is supported in Xcode 10.2 at the earliest.
|
|
ld_version_details = JSON.parse(Utils.safe_popen_read("/usr/bin/ld", "-version_details"))
|
|
ld_version = Version.parse(ld_version_details["version"])
|
|
|
|
# This is supported starting Xcode 13, which ships ld64-711.
|
|
# https://developer.apple.com/documentation/xcode-release-notes/xcode-13-release-notes
|
|
# https://en.wikipedia.org/wiki/Xcode#Xcode_11.0_-_14.x_(since_SwiftUI_framework)_2
|
|
ld_version >= 711
|
|
end
|
|
end
|