| Index: tools/isolate_driver.py
|
| diff --git a/tools/isolate_driver.py b/tools/isolate_driver.py
|
| index 4db823e444935fec4f6d95d4951246b6f2cbdd23..192de2cb837d9530d655a03303a73d1ccf9e8286 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,26 @@ def raw_build_to_deps(item):
|
| return filter(using_blacklist, item.split(' ')[1:])
|
|
|
|
|
| -def recurse(target, build_steps, rules_seen):
|
| - """Recursively returns all the interesting dependencies for root_item."""
|
| - out = []
|
| +def collect_deps(target, build_steps, dependencies_added, rules_seen):
|
| + """Recursively adds all the interesting dependencies for |target|
|
| + into |dependencies_added|.
|
| + """
|
| if rules_seen is None:
|
| rules_seen = set()
|
| if target in rules_seen:
|
| # TODO(maruel): Figure out how it happens.
|
| logging.warning('Circular dependency for %s!', target)
|
| - return []
|
| + return
|
| 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 []
|
| - logging.debug('recurse(%s) -> %s', target, dependencies)
|
| + return
|
| + logging.debug('collect_deps(%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)
|
| + collect_deps(dependency, build_steps, dependencies_added, rules_seen)
|
|
|
|
|
| def post_process_deps(build_dir, dependencies):
|
| @@ -219,7 +215,9 @@ 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 = set()
|
| + collect_deps(target, build_steps, binary_deps, None)
|
| + binary_deps = post_process_deps(build_dir, binary_deps)
|
| logging.debug(
|
| 'Binary dependencies:%s', ''.join('\n ' + i for i in binary_deps))
|
|
|
|
|