From 55654933f5ba47926d2fbf98d9aa606a4a86e23a Mon Sep 17 00:00:00 2001 From: Misty De Meo Date: Tue, 27 Aug 2013 18:23:34 -0700 Subject: [PATCH] superenv: fix cpp shim This sets cpp to use the compiler as cpp, and works with scripts which pass values to cpp on stdin as well as with file arguments. Closes Homebrew/homebrew#22155. --- Library/ENV/4.3/cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Library/ENV/4.3/cc b/Library/ENV/4.3/cc index fd22bb373b..4a626c77a0 100755 --- a/Library/ENV/4.3/cc +++ b/Library/ENV/4.3/cc @@ -6,6 +6,7 @@ #TODO create mechanism to specify build effects like %w{-O0 -O4 vanilla-arg-parsing sdk=10.6} etc. require "#{File.dirname __FILE__}/../libsuperenv" +require 'io/wait' require 'set' def cccfg? flags @@ -55,8 +56,7 @@ class Cmd def tool @tool ||= case @arg0 when 'ld' then 'ld' - when 'cpp' then 'cpp' - when 'cc', 'c99', 'c89' + when 'cc', 'cpp', 'c99', 'c89' # Ideally we would run `cx9`, however these tools are POSIX compliant # and don't support many flags. We need -isystem for instance, but also # reliability is generally much higher if we just get clang/gcc to do @@ -90,7 +90,8 @@ class Cmd end if nclt? case mode when :cpp - %w{-E} + args + cppflags + args = %w{-E} + args + cppflags + STDIN.ready? ? args + %w{-} : args when :ld ldflags + args when :cc