Skip to content

Commit 01823ea

Browse files
committed
[opt-viewer] Add option to set source directory
llvm-svn: 286536
1 parent 8efa090 commit 01823ea

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

llvm/utils/opt-viewer/opt-viewer.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
parser = argparse.ArgumentParser(description=desc)
2020
parser.add_argument('yaml_files', nargs='+')
2121
parser.add_argument('output_dir')
22+
parser.add_argument('-source-dir', '-s', default='', help='set source directory')
2223
args = parser.parse_args()
2324

2425
p = subprocess.Popen(['c++filt', '-n'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
@@ -115,8 +116,25 @@ def color(self): return "red"
115116

116117
class SourceFileRenderer:
117118
def __init__(self, filename):
118-
self.source_stream = open(filename)
119+
existing_filename = None
120+
if os.path.exists(filename):
121+
existing_filename = filename
122+
else:
123+
fn = os.path.join(args.source_dir, filename)
124+
if os.path.exists(fn):
125+
existing_filename = fn
126+
119127
self.stream = open(os.path.join(args.output_dir, SourceFileRenderer.html_file_name(filename)), 'w')
128+
if existing_filename:
129+
self.source_stream = open(existing_filename)
130+
else:
131+
self.source_stream = None
132+
print('''
133+
<html>
134+
<h1>Unable to locate file {}</h1>
135+
</html>
136+
'''.format(filename), file=self.stream)
137+
120138
self.html_formatter = HtmlFormatter()
121139
self.cpp_lexer = CppLexer()
122140

@@ -140,6 +158,9 @@ def render_inline_remarks(self, r):
140158
</tr>'''.format(**locals()), file=self.stream)
141159

142160
def render(self, line_remarks):
161+
if not self.source_stream:
162+
return
163+
143164
print('''
144165
<html>
145166
<head>

0 commit comments

Comments
 (0)