ccc: Support running piped jobs (-pipe now works).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62396 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2009-01-17 02:02:35 +00:00
Родитель 72afb3739d
Коммит 7d791fd22e
2 изменённых файлов: 27 добавлений и 3 удалений

Просмотреть файл

@ -197,7 +197,29 @@ class Driver(object):
if res:
sys.exit(res)
elif isinstance(j, Jobs.PipedJob):
raise NotImplementedError,"Piped jobs aren't implemented yet."
import subprocess
procs = []
for sj in j.commands:
if self.cccEcho:
print ' '.join(map(repr,sj.getArgv()))
sys.stdout.flush()
if not procs:
stdin = None
else:
stdin = procs[-1].stdout
if sj is j.commands[-1]:
stdout = None
else:
stdout = subprocess.PIPE
procs.append(subprocess.Popen(sj.getArgv(),
executable=sj.executable,
stdin=stdin,
stdout=stdout))
for proc in procs:
res = proc.wait()
if res:
sys.exit(res)
else:
raise ValueError,'Encountered unknown job.'
@ -585,7 +607,9 @@ class Driver(object):
if hasPipe:
self.claim(hasPipe)
# FIXME: Hack, override -pipe till we support it.
hasPipe = None
if hasSaveTemps:
self.warning('-pipe ignored because -save-temps specified')
hasPipe = None
# Claim these here. Its not completely accurate but any warnings
# about these being unused are likely to be noise anyway.
if hasSaveTemps:

Просмотреть файл

@ -141,7 +141,7 @@ class Darwin_AssembleTool(Tool):
cmd_args.extend(arglist.render(output))
if isinstance(input.source, Jobs.PipedJob):
cmd_args.append('-')
pass
else:
cmd_args.extend(arglist.renderAsInput(input.source))