Chromium Code Reviews| Index: third_party/closure_compiler/compile2.py |
| diff --git a/third_party/closure_compiler/compile2.py b/third_party/closure_compiler/compile2.py |
| index 59de787db165d03ba40e782322d844e06d65eafe..9f89126f2cd546683d6cf27fb8df805d9ee98ece 100755 |
| --- a/third_party/closure_compiler/compile2.py |
| +++ b/third_party/closure_compiler/compile2.py |
| @@ -189,7 +189,12 @@ class Checker(object): |
| tmp_file.write(contents) |
| return tmp_file.name |
| - def check(self, sources, out_file=None, runner_args=None, closure_args=None, |
| + def check(self, |
| + sources, |
| + source_list_file=None, |
|
Dan Beam
2016/09/06 16:46:46
can we call this like gn_source_list_file to make
aberent
2016/09/07 09:31:18
Done.
|
| + out_file=None, |
| + runner_args=None, |
| + closure_args=None, |
| custom_sources=True): |
| """Closure compile |sources| while checking for errors. |
| @@ -209,6 +214,18 @@ class Checker(object): |
| """ |
| is_extern = lambda f: 'extern' in f |
| externs_and_deps = [self._POLYMER_EXTERNS] |
| + |
| + # Convert the sources to absolute paths to make comparisons easy. |
| + sources = map(os.path.abspath, sources) |
| + # Process the source list. |
| + if (source_list_file): |
|
Dan Beam
2016/09/06 16:46:46
if source_list_file:
aberent
2016/09/07 09:31:18
Done.
|
| + with open(source_list_file) as f: |
| + listed_sources = f.read().splitlines() |
| + # Ignore the first line, GN puts the output file name here |
| + listed_sources = listed_sources[1:] |
| + listed_sources = map(os.path.abspath, listed_sources) |
| + # Concatenate onto sources, removing duplicates |
| + sources += [x for x in listed_sources if x not in sources] |
| if custom_sources: |
| externs_and_deps += sources |
| @@ -307,6 +324,11 @@ if __name__ == "__main__": |
| description="Typecheck JavaScript using Closure compiler") |
| parser.add_argument("sources", nargs=argparse.ONE_OR_MORE, |
| help="Path to a source file to typecheck") |
| + parser.add_argument( |
| + "--source_list_file", |
| + help="""A file generated by GN containing a list of |
| + additional sources. Due to an oddity in how this is |
| + generated the first line is ignored""") |
| parser.add_argument("--custom_sources", action="store_true", |
| help="Whether this rules has custom sources.") |
| parser.add_argument("-o", "--out_file", |
| @@ -321,7 +343,9 @@ if __name__ == "__main__": |
| checker = Checker(verbose=opts.verbose) |
| - found_errors, stderr = checker.check(opts.sources, out_file=opts.out_file, |
| + found_errors, stderr = checker.check(opts.sources, |
| + source_list_file = opts.source_list_file, |
|
Dan Beam
2016/09/06 16:46:46
no spaces between =, i.e. source_list_file=opts.so
aberent
2016/09/07 09:31:18
Done.
|
| + out_file=opts.out_file, |
| closure_args=opts.closure_args, |
| runner_args=opts.runner_args, |
| custom_sources=opts.custom_sources) |