From: Adam Nemet Date: Fri, 11 Nov 2016 01:08:02 +0000 (+0000) Subject: [opt-viewer] Add option to set source directory X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=97813438845b31dc7e49650c396d4df94f122f84;p=llvm [opt-viewer] Add option to set source directory git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286536 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/opt-viewer/opt-viewer.py b/utils/opt-viewer/opt-viewer.py index 2b60a642d07..5c23ba1d265 100755 --- a/utils/opt-viewer/opt-viewer.py +++ b/utils/opt-viewer/opt-viewer.py @@ -19,6 +19,7 @@ from pygments.formatters import HtmlFormatter parser = argparse.ArgumentParser(description=desc) parser.add_argument('yaml_files', nargs='+') parser.add_argument('output_dir') +parser.add_argument('-source-dir', '-s', default='', help='set source directory') args = parser.parse_args() p = subprocess.Popen(['c++filt', '-n'], stdin=subprocess.PIPE, stdout=subprocess.PIPE) @@ -115,8 +116,25 @@ class Missed(Remark): class SourceFileRenderer: def __init__(self, filename): - self.source_stream = open(filename) + existing_filename = None + if os.path.exists(filename): + existing_filename = filename + else: + fn = os.path.join(args.source_dir, filename) + if os.path.exists(fn): + existing_filename = fn + self.stream = open(os.path.join(args.output_dir, SourceFileRenderer.html_file_name(filename)), 'w') + if existing_filename: + self.source_stream = open(existing_filename) + else: + self.source_stream = None + print(''' + +

Unable to locate file {}

+ + '''.format(filename), file=self.stream) + self.html_formatter = HtmlFormatter() self.cpp_lexer = CppLexer() @@ -140,6 +158,9 @@ class SourceFileRenderer: '''.format(**locals()), file=self.stream) def render(self, line_remarks): + if not self.source_stream: + return + print('''