mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
ENV: deprecate old methods.
These should have been deprecated long ago but we didn’t really have the necessary framework to do so.
This commit is contained in:
parent
27695ffeeb
commit
e50102d91e
@ -22,3 +22,6 @@ require "compat/json"
|
||||
require "compat/ARGV"
|
||||
require "compat/build_options"
|
||||
require "compat/tab"
|
||||
require "compat/ENV/shared"
|
||||
require "compat/ENV/std"
|
||||
require "compat/ENV/super"
|
||||
|
6
Library/Homebrew/compat/ENV/shared.rb
Normal file
6
Library/Homebrew/compat/ENV/shared.rb
Normal file
@ -0,0 +1,6 @@
|
||||
module SharedEnvExtension
|
||||
def j1
|
||||
odeprecated "ENV.j1", "ENV.deparallelize"
|
||||
deparallelize
|
||||
end
|
||||
end
|
27
Library/Homebrew/compat/ENV/std.rb
Normal file
27
Library/Homebrew/compat/ENV/std.rb
Normal file
@ -0,0 +1,27 @@
|
||||
module Stdenv
|
||||
def fast
|
||||
odeprecated "ENV.fast"
|
||||
end
|
||||
|
||||
def O4
|
||||
odeprecated "ENV.O4"
|
||||
end
|
||||
|
||||
def Og
|
||||
odeprecated "ENV.Og"
|
||||
end
|
||||
|
||||
def gcc_4_0_1
|
||||
odeprecated "ENV.gcc_4_0_1", "ENV.gcc_4_0"
|
||||
gcc_4_0
|
||||
end
|
||||
|
||||
def gcc
|
||||
odeprecated "ENV.gcc", "ENV.gcc_4_2"
|
||||
gcc_4_2
|
||||
end
|
||||
|
||||
def libpng
|
||||
odeprecated "ENV.libpng", "ENV.x11"
|
||||
end
|
||||
end
|
47
Library/Homebrew/compat/ENV/super.rb
Normal file
47
Library/Homebrew/compat/ENV/super.rb
Normal file
@ -0,0 +1,47 @@
|
||||
module Superenv
|
||||
def fast
|
||||
odeprecated "ENV.fast"
|
||||
end
|
||||
|
||||
def O4
|
||||
odeprecated "ENV.O4"
|
||||
end
|
||||
|
||||
def Og
|
||||
odeprecated "ENV.Og"
|
||||
end
|
||||
|
||||
def gcc_4_0_1
|
||||
odeprecated "ENV.gcc_4_0_1", "ENV.gcc_4_0"
|
||||
gcc_4_0
|
||||
end
|
||||
|
||||
def gcc
|
||||
odeprecated "ENV.gcc", "ENV.gcc_4_2"
|
||||
gcc_4_2
|
||||
end
|
||||
|
||||
def libxml2
|
||||
odeprecated "ENV.libxml2"
|
||||
end
|
||||
|
||||
def minimal_optimization
|
||||
odeprecated "ENV.minimal_optimization"
|
||||
end
|
||||
|
||||
def no_optimization
|
||||
odeprecated "ENV.no_optimization"
|
||||
end
|
||||
|
||||
def enable_warnings
|
||||
odeprecated "ENV.enable_warnings"
|
||||
end
|
||||
|
||||
def macosxsdk
|
||||
odeprecated "ENV.macosxsdk"
|
||||
end
|
||||
|
||||
def remove_macosxsdk
|
||||
odeprecated "ENV.remove_macosxsdk"
|
||||
end
|
||||
end
|
@ -100,23 +100,23 @@ module OS
|
||||
end
|
||||
|
||||
def gcc_40_build_version
|
||||
odeprecated "MacOS.gcc_40_build_version", "DevelopmentTools.gcc_40_build_version"
|
||||
DevelopmentTools.gcc_40_build_version
|
||||
odeprecated "MacOS.gcc_40_build_version", "DevelopmentTools.gcc_4_0_build_version"
|
||||
DevelopmentTools.gcc_4_0_build_version
|
||||
end
|
||||
|
||||
def gcc_4_0_build_version
|
||||
odeprecated "MacOS.gcc_4_0_build_version", "DevelopmentTools.gcc_40_build_version"
|
||||
DevelopmentTools.gcc_40_build_version
|
||||
odeprecated "MacOS.gcc_4_0_build_version", "DevelopmentTools.gcc_4_0_build_version"
|
||||
DevelopmentTools.gcc_4_0_build_version
|
||||
end
|
||||
|
||||
def gcc_42_build_version
|
||||
odeprecated "MacOS.gcc_42_build_version", "DevelopmentTools.gcc_42_build_version"
|
||||
DevelopmentTools.gcc_42_build_version
|
||||
odeprecated "MacOS.gcc_42_build_version", "DevelopmentTools.gcc_4_2_build_version"
|
||||
DevelopmentTools.gcc_4_2_build_version
|
||||
end
|
||||
|
||||
def gcc_build_version
|
||||
odeprecated "MacOS.gcc_build_version", "DevelopmentTools.gcc_42_build_version"
|
||||
DevelopmentTools.gcc_42_build_version
|
||||
odeprecated "MacOS.gcc_build_version", "DevelopmentTools.gcc_4_2_build_version"
|
||||
DevelopmentTools.gcc_4_2_build_version
|
||||
end
|
||||
|
||||
def llvm_build_version
|
||||
|
@ -4,7 +4,7 @@ module CompilerConstants
|
||||
GNU_GCC_REGEXP = /^gcc-(4\.[3-9]|[5-7])$/
|
||||
COMPILER_SYMBOL_MAP = {
|
||||
"gcc-4.0" => :gcc_4_0,
|
||||
"gcc-4.2" => :gcc,
|
||||
"gcc-4.2" => :gcc_4_2,
|
||||
"clang" => :clang,
|
||||
"llvm_clang" => :llvm_clang,
|
||||
}.freeze
|
||||
@ -68,7 +68,7 @@ class CompilerFailure
|
||||
COLLECTIONS = {
|
||||
cxx11: [
|
||||
create(:gcc_4_0),
|
||||
create(:gcc),
|
||||
create(:gcc_4_2),
|
||||
create(:clang) { build 425 },
|
||||
create(gcc: "4.3"),
|
||||
create(gcc: "4.4"),
|
||||
@ -87,9 +87,9 @@ class CompilerSelector
|
||||
Compiler = Struct.new(:name, :version)
|
||||
|
||||
COMPILER_PRIORITY = {
|
||||
clang: [:clang, :gcc, :gnu, :gcc_4_0, :llvm_clang],
|
||||
gcc: [:gcc, :gnu, :clang, :gcc_4_0],
|
||||
gcc_4_0: [:gcc_4_0, :gcc, :gnu, :clang],
|
||||
clang: [:clang, :gcc_4_2, :gnu, :gcc_4_0, :llvm_clang],
|
||||
gcc_4_2: [:gcc_4_2, :gnu, :clang, :gcc_4_0],
|
||||
gcc_4_0: [:gcc_4_0, :gcc_4_2, :gnu, :clang],
|
||||
}.freeze
|
||||
|
||||
def self.select_for(formula, compilers = self.compilers)
|
||||
|
@ -34,15 +34,11 @@ class DevelopmentTools
|
||||
end
|
||||
|
||||
def default_compiler
|
||||
if default_cc =~ /^gcc/
|
||||
:gcc
|
||||
else
|
||||
:clang
|
||||
end
|
||||
end
|
||||
|
||||
def gcc_40_build_version
|
||||
@gcc_40_build_version ||= begin
|
||||
def gcc_4_0_build_version
|
||||
@gcc_4_0_build_version ||= begin
|
||||
if (path = locate("gcc-4.0")) &&
|
||||
build_version = `#{path} --version 2>/dev/null`[/build (\d{4,})/, 1]
|
||||
Version.new build_version
|
||||
@ -51,10 +47,9 @@ class DevelopmentTools
|
||||
end
|
||||
end
|
||||
end
|
||||
alias gcc_4_0_build_version gcc_40_build_version
|
||||
|
||||
def gcc_42_build_version
|
||||
@gcc_42_build_version ||= begin
|
||||
def gcc_4_2_build_version
|
||||
@gcc_4_2_build_version ||= begin
|
||||
gcc = locate("gcc-4.2") || HOMEBREW_PREFIX.join("opt/apple-gcc42/bin/gcc-4.2")
|
||||
if gcc.exist? && !gcc.realpath.basename.to_s.start_with?("llvm")&&
|
||||
build_version = `#{gcc} --version 2>/dev/null`[/build (\d{4,})/, 1]
|
||||
@ -64,7 +59,6 @@ class DevelopmentTools
|
||||
end
|
||||
end
|
||||
end
|
||||
alias gcc_build_version gcc_42_build_version
|
||||
|
||||
def clang_version
|
||||
@clang_version ||= begin
|
||||
@ -115,7 +109,7 @@ class DevelopmentTools
|
||||
end
|
||||
|
||||
def clear_version_cache
|
||||
@gcc_40_build_version = @gcc_42_build_version = nil
|
||||
@gcc_4_0_build_version = @gcc_4_2_build_version = nil
|
||||
@clang_version = @clang_build_version = nil
|
||||
@non_apple_gcc_version = {}
|
||||
end
|
||||
|
@ -82,10 +82,6 @@ module Stdenv
|
||||
|
||||
old
|
||||
end
|
||||
alias j1 deparallelize
|
||||
|
||||
# These methods are no-ops for compatibility.
|
||||
%w[fast O4 Og].each { |opt| define_method(opt) {} }
|
||||
|
||||
%w[O3 O2 O1 O0 Os].each do |opt|
|
||||
define_method opt do
|
||||
@ -110,13 +106,11 @@ module Stdenv
|
||||
super
|
||||
set_cpu_cflags "-march=nocona -mssse3"
|
||||
end
|
||||
alias gcc_4_0_1 gcc_4_0
|
||||
|
||||
def gcc
|
||||
def gcc_4_2
|
||||
super
|
||||
set_cpu_cflags
|
||||
end
|
||||
alias gcc_4_2 gcc
|
||||
|
||||
GNU_GCC_VERSIONS.each do |n|
|
||||
define_method(:"gcc-#{n}") do
|
||||
@ -144,13 +138,6 @@ module Stdenv
|
||||
end
|
||||
alias generic_no_optimization no_optimization
|
||||
|
||||
def libxml2
|
||||
end
|
||||
|
||||
def x11
|
||||
end
|
||||
alias libpng x11
|
||||
|
||||
# we've seen some packages fail to build when warnings are disabled!
|
||||
def enable_warnings
|
||||
remove_from_cflags "-w"
|
||||
|
@ -16,9 +16,7 @@ module Superenv
|
||||
|
||||
# @private
|
||||
attr_accessor :keg_only_deps, :deps
|
||||
|
||||
attr_accessor :x11
|
||||
alias x11? x11
|
||||
|
||||
def self.extended(base)
|
||||
base.keg_only_deps = []
|
||||
@ -263,7 +261,6 @@ module Superenv
|
||||
|
||||
old
|
||||
end
|
||||
alias j1 deparallelize
|
||||
|
||||
def make_jobs
|
||||
self["MAKEFLAGS"] =~ /-\w*j(\d+)/
|
||||
@ -329,23 +326,9 @@ module Superenv
|
||||
def set_x11_env_if_installed
|
||||
end
|
||||
|
||||
# This method does nothing in superenv since there's no custom CFLAGS API
|
||||
# @private
|
||||
def noop(*_args); end
|
||||
|
||||
# These methods are no longer necessary under superenv, but are needed to
|
||||
# maintain an interface compatible with stdenv.
|
||||
alias fast noop
|
||||
alias O4 noop
|
||||
alias Og noop
|
||||
alias libxml2 noop
|
||||
alias set_cpu_flags noop
|
||||
|
||||
# These methods provide functionality that has not yet been ported to
|
||||
# superenv.
|
||||
alias gcc_4_0_1 noop
|
||||
alias minimal_optimization noop
|
||||
alias no_optimization noop
|
||||
alias enable_warnings noop
|
||||
def set_cpu_flags; end
|
||||
end
|
||||
|
||||
class Array
|
||||
|
@ -64,15 +64,15 @@ class DevelopmentTools
|
||||
case default_cc
|
||||
# if GCC 4.2 is installed, e.g. via Tigerbrew, prefer it
|
||||
# over the system's GCC 4.0
|
||||
when /^gcc-4\.0/ then gcc_42_build_version ? :gcc : :gcc_4_0
|
||||
when /^gcc/ then :gcc
|
||||
when /^gcc-4\.0/ then gcc_4_2_build_version ? :gcc_4_2 : :gcc_4_0
|
||||
when /^gcc/ then :gcc_4_2
|
||||
when "clang" then :clang
|
||||
else
|
||||
# guess :(
|
||||
if MacOS::Xcode.version >= "4.3"
|
||||
:clang
|
||||
else
|
||||
:gcc
|
||||
:gcc_4_2
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,4 +1,6 @@
|
||||
module Superenv
|
||||
alias x11? x11
|
||||
|
||||
# @private
|
||||
def self.bin
|
||||
return unless DevelopmentTools.installed?
|
||||
@ -120,9 +122,4 @@ module Superenv
|
||||
def no_weak_imports
|
||||
append "HOMEBREW_CCCFG", "w" if no_weak_imports_support?
|
||||
end
|
||||
|
||||
# These methods are no longer necessary under superenv, but are needed to
|
||||
# maintain an interface compatible with stdenv.
|
||||
alias macosxsdk noop
|
||||
alias remove_macosxsdk noop
|
||||
end
|
||||
|
@ -152,13 +152,13 @@ module OS
|
||||
end
|
||||
|
||||
STANDARD_COMPILERS = {
|
||||
"2.0" => { gcc_40_build: 4061 },
|
||||
"2.5" => { gcc_40_build: 5370 },
|
||||
"3.1.4" => { gcc_40_build: 5493, gcc_42_build: 5577 },
|
||||
"3.2.6" => { gcc_40_build: 5494, gcc_42_build: 5666, clang: "1.7", clang_build: 77 },
|
||||
"4.0" => { gcc_40_build: 5494, gcc_42_build: 5666, clang: "2.0", clang_build: 137 },
|
||||
"4.0.1" => { gcc_40_build: 5494, gcc_42_build: 5666, clang: "2.0", clang_build: 137 },
|
||||
"4.0.2" => { gcc_40_build: 5494, gcc_42_build: 5666, clang: "2.0", clang_build: 137 },
|
||||
"2.0" => { gcc_4_0_build: 4061 },
|
||||
"2.5" => { gcc_4_0_build: 5370 },
|
||||
"3.1.4" => { gcc_4_0_build: 5493, gcc_4_2_build: 5577 },
|
||||
"3.2.6" => { gcc_4_0_build: 5494, gcc_4_2_build: 5666, clang: "1.7", clang_build: 77 },
|
||||
"4.0" => { gcc_4_0_build: 5494, gcc_4_2_build: 5666, clang: "2.0", clang_build: 137 },
|
||||
"4.0.1" => { gcc_4_0_build: 5494, gcc_4_2_build: 5666, clang: "2.0", clang_build: 137 },
|
||||
"4.0.2" => { gcc_4_0_build: 5494, gcc_4_2_build: 5666, clang: "2.0", clang_build: 137 },
|
||||
"4.2" => { clang: "3.0", clang_build: 211 },
|
||||
"4.3" => { clang: "3.1", clang_build: 318 },
|
||||
"4.3.1" => { clang: "3.1", clang_build: 318 },
|
||||
|
@ -6,12 +6,12 @@ require "development_tools"
|
||||
|
||||
class SystemConfig
|
||||
class << self
|
||||
def gcc_42
|
||||
@gcc_42 ||= DevelopmentTools.gcc_42_build_version if DevelopmentTools.installed?
|
||||
def gcc_4_2
|
||||
@gcc_4_2 ||= DevelopmentTools.gcc_4_2_build_version if DevelopmentTools.installed?
|
||||
end
|
||||
|
||||
def gcc_40
|
||||
@gcc_40 ||= DevelopmentTools.gcc_40_build_version if DevelopmentTools.installed?
|
||||
def gcc_4_0
|
||||
@gcc_4_0 ||= DevelopmentTools.gcc_4_0_build_version if DevelopmentTools.installed?
|
||||
end
|
||||
|
||||
def clang
|
||||
@ -143,8 +143,8 @@ class SystemConfig
|
||||
f.puts "HOMEBREW_BOTTLE_DOMAIN: #{BottleSpecification::DEFAULT_DOMAIN}"
|
||||
f.puts hardware if hardware
|
||||
f.puts "Homebrew Ruby: #{describe_homebrew_ruby}"
|
||||
f.puts "GCC-4.0: build #{gcc_40}" unless gcc_40.null?
|
||||
f.puts "GCC-4.2: build #{gcc_42}" unless gcc_42.null?
|
||||
f.puts "GCC-4.0: build #{gcc_4_0}" unless gcc_4_0.null?
|
||||
f.puts "GCC-4.2: build #{gcc_4_2}" unless gcc_4_2.null?
|
||||
f.puts "Clang: #{clang.null? ? "N/A" : "#{clang} build #{clang_build}"}"
|
||||
f.puts "Git: #{describe_git}"
|
||||
f.puts "Perl: #{describe_perl}"
|
||||
|
@ -133,7 +133,7 @@ module SharedEnvTests
|
||||
end
|
||||
|
||||
def test_switching_compilers_updates_compiler
|
||||
[:clang, :gcc, :gcc_4_0].each do |compiler|
|
||||
[:clang, :gcc_4_2, :gcc_4_0].each do |compiler|
|
||||
@env.send(compiler)
|
||||
assert_equal compiler, @env.compiler
|
||||
end
|
||||
|
@ -6,7 +6,8 @@ class CxxStdlibTests < Homebrew::TestCase
|
||||
def setup
|
||||
@clang = CxxStdlib.create(:libstdcxx, :clang)
|
||||
@gcc = CxxStdlib.create(:libstdcxx, :gcc)
|
||||
@gcc4 = CxxStdlib.create(:libstdcxx, :gcc_4_0)
|
||||
@gcc40 = CxxStdlib.create(:libstdcxx, :gcc_4_0)
|
||||
@gcc42 = CxxStdlib.create(:libstdcxx, :gcc_4_2)
|
||||
@gcc48 = CxxStdlib.create(:libstdcxx, "gcc-4.8")
|
||||
@gcc49 = CxxStdlib.create(:libstdcxx, "gcc-4.9")
|
||||
@lcxx = CxxStdlib.create(:libcxx, :clang)
|
||||
@ -15,7 +16,7 @@ class CxxStdlibTests < Homebrew::TestCase
|
||||
|
||||
def test_apple_libstdcxx_intercompatibility
|
||||
assert @clang.compatible_with?(@gcc)
|
||||
assert @clang.compatible_with?(@gcc4)
|
||||
assert @clang.compatible_with?(@gcc42)
|
||||
end
|
||||
|
||||
def test_compatibility_same_compilers_and_type
|
||||
@ -42,7 +43,7 @@ class CxxStdlibTests < Homebrew::TestCase
|
||||
def test_apple_compiler_reporting
|
||||
assert_predicate @clang, :apple_compiler?
|
||||
assert_predicate @gcc, :apple_compiler?
|
||||
assert_predicate @gcc4, :apple_compiler?
|
||||
assert_predicate @gcc42, :apple_compiler?
|
||||
refute_predicate @gcc48, :apple_compiler?
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user