зеркало из https://github.com/microsoft/clang-1.git
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:
Родитель
72afb3739d
Коммит
7d791fd22e
|
@ -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))
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче