Chromium Code Reviews| Index: tools/isolate_driver.py |
| diff --git a/tools/isolate_driver.py b/tools/isolate_driver.py |
| index 4db823e444935fec4f6d95d4951246b6f2cbdd23..c4fc3d2fa145fc0202e4b3949b78c1356236cef0 100755 |
| --- a/tools/isolate_driver.py |
| +++ b/tools/isolate_driver.py |
| @@ -113,8 +113,9 @@ def using_blacklist(item): |
| this list. This is simply an optimization. |
| """ |
| IGNORED = ( |
| - '.a', '.cc', '.css', '.def', '.h', '.html', '.js', '.json', '.manifest', |
| - '.o', '.obj', '.pak', '.png', '.pdb', '.strings', '.txt', |
| + '.a', '.cc', '.css', '.def', '.frag', '.h', '.html', '.js', '.json', |
| + '.manifest', '.o', '.obj', '.pak', '.png', '.pdb', '.strings', '.test', |
| + '.txt', '.vert', |
| ) |
| # ninja files use native path format. |
| ext = os.path.splitext(item)[1] |
| @@ -138,31 +139,27 @@ def raw_build_to_deps(item): |
| return filter(using_blacklist, item.split(' ')[1:]) |
| -def recurse(target, build_steps, rules_seen): |
| +def recurse(target, build_steps, rules_seen, dependencies_added): |
|
Vadim Sh.
2014/05/30 22:15:25
Please make this function _not_ to return anything
Ken Russell (switch to Gerrit)
2014/05/30 22:43:49
Thanks for the good suggestion. Done.
|
| """Recursively returns all the interesting dependencies for root_item.""" |
| - out = [] |
| if rules_seen is None: |
| rules_seen = set() |
| + if dependencies_added is None: |
| + dependencies_added = set() |
| if target in rules_seen: |
| # TODO(maruel): Figure out how it happens. |
| logging.warning('Circular dependency for %s!', target) |
| - return [] |
| + return dependencies_added |
| rules_seen.add(target) |
| try: |
| dependencies = raw_build_to_deps(build_steps[target]) |
| except KeyError: |
| logging.info('Failed to find a build step to generate: %s', target) |
| - return [] |
| + return dependencies_added |
| logging.debug('recurse(%s) -> %s', target, dependencies) |
| for dependency in dependencies: |
| - out.append(dependency) |
| - dependency_raw_dependencies = build_steps.get(dependency) |
| - if dependency_raw_dependencies: |
| - for i in raw_build_to_deps(dependency_raw_dependencies): |
| - out.extend(recurse(i, build_steps, rules_seen)) |
| - else: |
| - logging.info('Failed to find a build step to generate: %s', dependency) |
| - return out |
| + dependencies_added.add(dependency) |
| + recurse(dependency, build_steps, rules_seen, dependencies_added) |
| + return dependencies_added |
| def post_process_deps(build_dir, dependencies): |
| @@ -219,7 +216,8 @@ def create_wrapper(args, isolate_index, isolated_index): |
| # complain to maruel@. |
| target = isolate[:-len('.isolate')] + '_run' |
| build_steps = load_ninja(build_dir) |
| - binary_deps = post_process_deps(build_dir, recurse(target, build_steps, None)) |
| + binary_deps = post_process_deps(build_dir, recurse( |
|
Vadim Sh.
2014/05/30 22:15:25
and then:
binary_deps = set()
collect_deps(target,
Ken Russell (switch to Gerrit)
2014/05/30 22:43:49
Done. I switched the order of the dependencies_add
|
| + target, build_steps, None, None)) |
| logging.debug( |
| 'Binary dependencies:%s', ''.join('\n ' + i for i in binary_deps)) |