Chromium Code Reviews| Index: pylib/gyp/generator/msvs.py |
| =================================================================== |
| --- pylib/gyp/generator/msvs.py (revision 1364) |
| +++ pylib/gyp/generator/msvs.py (working copy) |
| @@ -31,6 +31,10 @@ |
| VALID_MSVS_GUID_CHARS = re.compile('^[A-F0-9\-]+$') |
| +# Regex for msvs variable references. |
| +MSVS_VARIABLE_REFERENCE = re.compile('\$\(([a-zA-Z_][a-zA-Z0-9_]*)\)') |
| + |
| + |
| generator_default_variables = { |
| 'EXECUTABLE_PREFIX': '', |
| 'EXECUTABLE_SUFFIX': '.exe', |
| @@ -2649,7 +2653,17 @@ |
| if label: |
| group.append({'Label': label}) |
| num_configurations = len(spec['configurations']) |
| - for name, values in sorted(properties.iteritems()): |
| + def GetEdges(node): |
| + edges = set() |
| + for value in sorted(properties[node].keys()): |
| + edges.update(set([v for v in MSVS_VARIABLE_REFERENCE.findall(value) |
| + if v in properties and v != node])) |
|
gab
2012/05/10 13:57:07
It took me a little while to figure out how this w
bradn
2012/05/10 20:17:56
Done
|
| + return edges |
| + properties_ordered = gyp.common.TopologicallySorted( |
| + properties.keys(), GetEdges) |
| + properties_ordered.reverse() |
|
Nico
2012/05/10 19:20:23
Here too you're reversing twice
bradn
2012/05/10 20:17:56
So I've moved to normal topological order everywhe
|
| + for name in properties_ordered: |
| + values = properties[name] |
| for value, conditions in sorted(values.iteritems()): |
| if len(conditions) == num_configurations: |
| # If the value is the same all configurations, |