Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(287)

Side by Side Diff: pylib/gyp/input.py

Issue 7006031: Reapply r922 with the dependencies reversed. (Closed) Base URL: https://gyp.googlecode.com/svn/trunk
Patch Set: Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 2
3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 from compiler.ast import Const 7 from compiler.ast import Const
8 from compiler.ast import Dict 8 from compiler.ast import Dict
9 from compiler.ast import Discard 9 from compiler.ast import Discard
10 from compiler.ast import List 10 from compiler.ast import List
(...skipping 1527 matching lines...) Expand 10 before | Expand all | Expand 10 after
1538 # present. 1538 # present.
1539 1539
1540 link_dependencies = dependency_nodes[target].LinkDependencies(targets) 1540 link_dependencies = dependency_nodes[target].LinkDependencies(targets)
1541 for dependency in link_dependencies: 1541 for dependency in link_dependencies:
1542 if dependency == target: 1542 if dependency == target:
1543 continue 1543 continue
1544 if not 'dependencies' in target_dict: 1544 if not 'dependencies' in target_dict:
1545 target_dict['dependencies'] = [] 1545 target_dict['dependencies'] = []
1546 if not dependency in target_dict['dependencies']: 1546 if not dependency in target_dict['dependencies']:
1547 target_dict['dependencies'].append(dependency) 1547 target_dict['dependencies'].append(dependency)
1548 # Sort the dependencies list in the order from dependents to dependencies.
1549 # e.g. If A and B depend on C and C depends on D, sort them in A, B, C, D.
1550 # Note: flat_list is already sorted in the order from dependencies to
1551 # dependents.
1552 if 'dependencies' in target_dict:
1553 target_dict['dependencies'] = [
1554 dep for dep in flat_list if dep in target_dict['dependencies']]
1555
1556 # The final step to implement the above algorithm would be to reverse
1557 # the dependencies:
1558 # target_dict['dependencies'].reverse()
1559 # as an experiment, leave this out so we can measure its impact on
1560 # build performance.
1561
1548 1562
1549 # Initialize this here to speed up MakePathRelative. 1563 # Initialize this here to speed up MakePathRelative.
1550 exception_re = re.compile(r'''["']?[-/$<>]''') 1564 exception_re = re.compile(r'''["']?[-/$<>]''')
1551 1565
1552 1566
1553 def MakePathRelative(to_file, fro_file, item): 1567 def MakePathRelative(to_file, fro_file, item):
1554 # If item is a relative path, it's relative to the build file dict that it's 1568 # If item is a relative path, it's relative to the build file dict that it's
1555 # coming from. Fix it up to make it relative to the build file dict that 1569 # coming from. Fix it up to make it relative to the build file dict that
1556 # it's going into. 1570 # it's going into.
1557 # Exception: any |item| that begins with these special characters is 1571 # Exception: any |item| that begins with these special characters is
(...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after
2292 ValidateRunAsInTarget(target, target_dict, build_file) 2306 ValidateRunAsInTarget(target, target_dict, build_file)
2293 ValidateActionsInTarget(target, target_dict, build_file) 2307 ValidateActionsInTarget(target, target_dict, build_file)
2294 2308
2295 # Generators might not expect ints. Turn them into strs. 2309 # Generators might not expect ints. Turn them into strs.
2296 TurnIntIntoStrInDict(data) 2310 TurnIntIntoStrInDict(data)
2297 2311
2298 # TODO(mark): Return |data| for now because the generator needs a list of 2312 # TODO(mark): Return |data| for now because the generator needs a list of
2299 # build files that came in. In the future, maybe it should just accept 2313 # build files that came in. In the future, maybe it should just accept
2300 # a list, and not the whole data dict. 2314 # a list, and not the whole data dict.
2301 return [flat_list, targets, data] 2315 return [flat_list, targets, data]
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698