From fd031f256ae457d93c0472250655e71f2f066563 Mon Sep 17 00:00:00 2001 From: Jack Nagel <jacknagel@gmail.com> Date: Sun, 8 Feb 2015 20:04:06 -0500 Subject: [PATCH] Add predicate methods for compiler shim configuration --- Library/ENV/4.3/cc | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/Library/ENV/4.3/cc b/Library/ENV/4.3/cc index 65a95d3735..5e985a042d 100755 --- a/Library/ENV/4.3/cc +++ b/Library/ENV/4.3/cc @@ -84,7 +84,8 @@ class Cmd # software uses gcc -v (wrongly) to sniff the GCC version. return @args.dup end - if !cccfg?("O") || tool == "ld" || configure? + + if !refurbish_args? || tool == "ld" || configure? args = @args.dup else args = refurbished_args @@ -128,13 +129,13 @@ class Cmd loop do case arg = enum.next when "-arch" - if cccfg?("K") + if permit_arch_flags? args << arg << enum.next else enum.next end when "-m32", "-m64" - args << arg if cccfg?("K") + args << arg if permit_arch_flags? when /^-Xarch_/ refurbished = refurbish_arg(enum.next, enum) unless refurbished.empty? @@ -205,7 +206,7 @@ class Cmd def cflags args = [] - return args unless cccfg? 'O' or configure? + return args unless refurbish_args? || configure? args << '-pipe' args << '-w' unless configure? @@ -217,9 +218,9 @@ class Cmd def cxxflags args = cflags - args << '-std=c++11' if cccfg? 'x' - args << '-stdlib=libc++' if cccfg? 'g' - args << '-stdlib=libstdc++' if cccfg? 'h' + args << "-std=c++11" if cxx11? + args << "-stdlib=libc++" if libcxx? + args << "-stdlib=libstdc++" if libstdcxx? args end @@ -276,7 +277,7 @@ class Cmd end def make_fuss? - cccfg? 'O' and not configure? + refurbish_args? && !configure? end def configure? @@ -288,6 +289,26 @@ class Cmd flags.split('').all?{|c| ENV['HOMEBREW_CCCFG'].include? c } if ENV['HOMEBREW_CCCFG'] end + def refurbish_args? + cccfg?("O") + end + + def cxx11? + cccfg?("x") + end + + def libcxx? + cccfg?("g") + end + + def libstdcxx? + cccfg?("h") + end + + def permit_arch_flags? + cccfg?("K") + end + def canonical_path(path) path = Pathname.new(path) path = path.realpath if path.exist? -- GitLab