diff options
| author | Greg Noel <GregNoel@tigris.org> | 2008-09-22 08:11:34 (GMT) |
|---|---|---|
| committer | Greg Noel <GregNoel@tigris.org> | 2008-09-22 08:11:34 (GMT) |
| commit | df89ddcab4d35ffc573b1ac9e4cb131761149667 (patch) | |
| tree | 68ea5dbc46d44172204e37387057e349beb5c4d2 /src/engine | |
| parent | efc3f9f021199529d94058930a0660008824f5c3 (diff) | |
| download | SCons-df89ddcab4d35ffc573b1ac9e4cb131761149667.zip SCons-df89ddcab4d35ffc573b1ac9e4cb131761149667.tar.gz SCons-df89ddcab4d35ffc573b1ac9e4cb131761149667.tar.bz2 | |
make references to subprocess.Popen synchronous
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/SCons/Action.py | 4 | ||||
| -rw-r--r-- | src/engine/SCons/Environment.py | 9 | ||||
| -rw-r--r-- | src/engine/SCons/Tool/g++.py | 2 | ||||
| -rw-r--r-- | src/engine/SCons/Tool/gcc.py | 2 |
4 files changed, 8 insertions, 9 deletions
diff --git a/src/engine/SCons/Action.py b/src/engine/SCons/Action.py index da02f12..069400c 100644 --- a/src/engine/SCons/Action.py +++ b/src/engine/SCons/Action.py @@ -543,8 +543,8 @@ def _subproc(env, cmd, error = 'ignore', **kw): # return a dummy Popen instance that only returns error class popen: def __init__(self, e): self.exception = e - def communicate(): return ('','') - def wait(): return -self.exception.errno + def communicate(self): return ('','') + def wait(self): return -self.exception.errno stdin = None class f: def read(self): return '' diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py index b16a1ef..cbf0d17 100644 --- a/src/engine/SCons/Environment.py +++ b/src/engine/SCons/Environment.py @@ -37,7 +37,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import copy import os -import os.path +import sys import re import shlex import string @@ -537,13 +537,9 @@ class SubstitutionEnvironment: # run constructed command #FUTURE p = SCons.Action._subproc(self, command, **kw) p = apply(SCons.Action._subproc, (self, command), kw) - out = p.stdout.read() - p.stdout.close() - err = p.stderr.read() - p.stderr.close() + out,err = p.communicate() status = p.wait() if err: - import sys sys.stderr.write(err) if status: raise OSError("'%s' exited %d" % (command, status)) @@ -1847,7 +1843,6 @@ class Base(SubstitutionEnvironment): errstr = result.errstr if result.filename: errstr = result.filename + ': ' + errstr - import sys sys.stderr.write("scons: *** %s\n" % errstr) return result.status else: diff --git a/src/engine/SCons/Tool/g++.py b/src/engine/SCons/Tool/g++.py index f8f5b34..61d095e 100644 --- a/src/engine/SCons/Tool/g++.py +++ b/src/engine/SCons/Tool/g++.py @@ -63,9 +63,11 @@ def generate(env): env['SHOBJSUFFIX'] = '.pic.o' # determine compiler version if env['CXX']: + #pipe = SCons.Action._subproc(env, [env['CXX'], '-dumpversion'], pipe = SCons.Action._subproc(env, [env['CXX'], '--version'], stderr = subprocess.PIPE, stdout = subprocess.PIPE) + if pipe.wait() != 0: return # -dumpversion was added in GCC 3.0. As long as we're supporting # GCC versions older than that, we should use --version and a # regular expression. diff --git a/src/engine/SCons/Tool/gcc.py b/src/engine/SCons/Tool/gcc.py index 232d64a..7d2b1b8 100644 --- a/src/engine/SCons/Tool/gcc.py +++ b/src/engine/SCons/Tool/gcc.py @@ -53,9 +53,11 @@ def generate(env): env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS -fPIC') # determine compiler version if env['CC']: + #pipe = SCons.Action._subproc(env, [env['CC'], '-dumpversion'], pipe = SCons.Action._subproc(env, [env['CC'], '--version'], stderr = subprocess.PIPE, stdout = subprocess.PIPE) + if pipe.wait() != 0: return # -dumpversion was added in GCC 3.0. As long as we're supporting # GCC versions older than that, we should use --version and a # regular expression. |
