Add predicate methods for compiler shim configuration
This commit is contained in:
		
							parent
							
								
									60452a526f
								
							
						
					
					
						commit
						fd031f256a
					
				@ -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?
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user