homebrew_bootsnap: require some developer tools.

Do a very basic developer tools check to ensure that we can compile
things. We cannot use `DevelopmentTools.installed?` because this has
much higher speed requirements and needs to be run before we `require`
anything else.
This commit is contained in:
Mike McQuaid 2021-02-24 16:49:06 +00:00
parent f14ed4987f
commit 634efba261
No known key found for this signature in database
GPG Key ID: 48A898132FD8EE70

View File

@ -1,7 +1,7 @@
# typed: false # typed: false
# frozen_string_literal: true # frozen_string_literal: true
if !ENV["HOMEBREW_NO_BOOTSNAP"] && homebrew_bootsnap_enabled = !ENV["HOMEBREW_NO_BOOTSNAP"] &&
ENV["HOMEBREW_BOOTSNAP"] && ENV["HOMEBREW_BOOTSNAP"] &&
# portable ruby doesn't play nice with bootsnap # portable ruby doesn't play nice with bootsnap
!ENV["HOMEBREW_FORCE_VENDOR_RUBY"] && !ENV["HOMEBREW_FORCE_VENDOR_RUBY"] &&
@ -9,6 +9,16 @@ if !ENV["HOMEBREW_NO_BOOTSNAP"] &&
# Apple Silicon doesn't play nice with bootsnap # Apple Silicon doesn't play nice with bootsnap
(ENV["HOMEBREW_PROCESSOR"] == "Intel") (ENV["HOMEBREW_PROCESSOR"] == "Intel")
# we need some development tools to build bootsnap native code
development_tools_installed = if !homebrew_bootsnap_enabled
false
elsif RbConfig::CONFIG["host_os"].include? "darwin"
File.directory?("/Applications/Xcode.app") || File.directory?("/Library/Developer/CommandLineTools")
else
File.executable?("/usr/bin/clang") || File.executable?("/usr/bin/gcc")
end
if homebrew_bootsnap_enabled && development_tools_installed
require "rubygems" require "rubygems"
begin begin