update the build diagram and its script

This commit is contained in:
Rob Speer 2015-08-28 17:47:04 -04:00
parent 2370287539
commit 5def3a7897
2 changed files with 8 additions and 6 deletions

View File

@ -11,17 +11,19 @@ def ninja_to_dot():
print('rankdir="LR";') print('rankdir="LR";')
for line in sys.stdin: for line in sys.stdin:
line = line.rstrip() line = line.rstrip()
parts = line.split(' ') if line.startswith('build'):
if parts[0] == 'build':
# the output file is the first argument; strip off the colon that # the output file is the first argument; strip off the colon that
# comes from ninja syntax # comes from ninja syntax
outfile = last_component(parts[1][:-1]) output_text, input_text = line.split(':')
operation = parts[2] outfiles = [last_component(part) for part in output_text.split(' ')[1:]]
infiles = [last_component(part) for part in parts[3:]] inputs = input_text.strip().split(' ')
infiles = [last_component(part) for part in inputs[1:]]
operation = inputs[0]
for infile in infiles: for infile in infiles:
if infile == '|': if infile == '|':
# external dependencies start here; let's not graph those # external dependencies start here; let's not graph those
break break
for outfile in outfiles:
print('"%s" -> "%s" [label="%s"]' % (infile, outfile, operation)) print('"%s" -> "%s" [label="%s"]' % (infile, outfile, operation))
print("}") print("}")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

After

Width:  |  Height:  |  Size: 10 MiB