aboutsummaryrefslogtreecommitdiffstats
path: root/Library/ENV
diff options
context:
space:
mode:
authorMisty De Meo2013-08-27 18:23:34 -0700
committerMisty De Meo2013-08-27 18:24:08 -0700
commit55654933f5ba47926d2fbf98d9aa606a4a86e23a (patch)
tree49c245cd215989696f59d70b534bf91b51641c05 /Library/ENV
parented461359a71ec31c14c0a5e2e4b1103357d02036 (diff)
downloadbrew-55654933f5ba47926d2fbf98d9aa606a4a86e23a.tar.bz2
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.
Diffstat (limited to 'Library/ENV')
-rwxr-xr-xLibrary/ENV/4.3/cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/Library/ENV/4.3/cc b/Library/ENV/4.3/cc
index fd22bb373..4a626c77a 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