Index: pylib/gyp/input.py |
diff --git a/pylib/gyp/input.py b/pylib/gyp/input.py |
index 3fe7bc5fa8357cd874d4af8e7b100d437c8bc1a2..b0adabd7c4e09757edb61b245619c98ccfd33766 100644 |
--- a/pylib/gyp/input.py |
+++ b/pylib/gyp/input.py |
@@ -1545,6 +1545,20 @@ def AdjustStaticLibraryDependencies(flat_list, targets, dependency_nodes): |
target_dict['dependencies'] = [] |
if not dependency in target_dict['dependencies']: |
target_dict['dependencies'].append(dependency) |
+ # Sort the dependencies list in the order from dependents to dependencies. |
+ # e.g. If A and B depend on C and C depends on D, sort them in A, B, C, D. |
+ # Note: flat_list is already sorted in the order from dependencies to |
+ # dependents. |
+ if 'dependencies' in target_dict: |
+ target_dict['dependencies'] = [ |
+ dep for dep in flat_list if dep in target_dict['dependencies']] |
+ |
+ # The final step to implement the above algorithm would be to reverse |
+ # the dependencies: |
+ # target_dict['dependencies'].reverse() |
+ # as an experiment, leave this out so we can measure its impact on |
+ # build performance. |
+ |
# Initialize this here to speed up MakePathRelative. |
exception_re = re.compile(r'''["']?[-/$<>]''') |