OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import ast | 5 import ast |
6 import contextlib | 6 import contextlib |
7 import fnmatch | 7 import fnmatch |
8 import json | 8 import json |
9 import os | 9 import os |
10 import pipes | 10 import pipes |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 | 70 |
71 | 71 |
72 def FindInDirectories(directories, filename_filter): | 72 def FindInDirectories(directories, filename_filter): |
73 all_files = [] | 73 all_files = [] |
74 for directory in directories: | 74 for directory in directories: |
75 all_files.extend(FindInDirectory(directory, filename_filter)) | 75 all_files.extend(FindInDirectory(directory, filename_filter)) |
76 return all_files | 76 return all_files |
77 | 77 |
78 | 78 |
79 def ParseGnList(gn_string): | 79 def ParseGnList(gn_string): |
| 80 # TODO(brettw) bug 573132: This doesn't handle GN escaping properly, so any |
| 81 # weird characters like $ or \ in the strings will be corrupted. |
| 82 # |
| 83 # The code should import build/gn_helpers.py and then do: |
| 84 # parser = gn_helpers.GNValueParser(gn_string) |
| 85 # return return parser.ParseList() |
| 86 # As of this writing, though, there is a CastShell build script that sends |
| 87 # JSON through this function, and using correct GN parsing corrupts that. |
| 88 # |
| 89 # We need to be consistent about passing either JSON or GN lists through |
| 90 # this function. |
80 return ast.literal_eval(gn_string) | 91 return ast.literal_eval(gn_string) |
81 | 92 |
82 | 93 |
83 def ParseGypList(gyp_string): | 94 def ParseGypList(gyp_string): |
84 # The ninja generator doesn't support $ in strings, so use ## to | 95 # The ninja generator doesn't support $ in strings, so use ## to |
85 # represent $. | 96 # represent $. |
86 # TODO(cjhopman): Remove when | 97 # TODO(cjhopman): Remove when |
87 # https://code.google.com/p/gyp/issues/detail?id=327 | 98 # https://code.google.com/p/gyp/issues/detail?id=327 |
88 # is addressed. | 99 # is addressed. |
89 gyp_string = gyp_string.replace('##', '$') | 100 gyp_string = gyp_string.replace('##', '$') |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
476 | 487 |
477 md5_check.CallAndRecordIfStale( | 488 md5_check.CallAndRecordIfStale( |
478 on_stale_md5, | 489 on_stale_md5, |
479 record_path=record_path, | 490 record_path=record_path, |
480 input_paths=input_paths, | 491 input_paths=input_paths, |
481 input_strings=input_strings, | 492 input_strings=input_strings, |
482 output_paths=output_paths, | 493 output_paths=output_paths, |
483 force=force, | 494 force=force, |
484 pass_changes=True) | 495 pass_changes=True) |
485 | 496 |
OLD | NEW |