Commit fb022017 authored by Paweł Hajdan, Jr's avatar Paweł Hajdan, Jr Committed by Commit Bot

gclient flatten: include vars

ChromeOS build depends on buildspec_platforms variable, see
https://bugs.chromium.org/p/chromium/issues/detail?id=703268 .

Bug: 570091
Change-Id: I9c964d332b45cf10f5cb79a82ea721bd4aba80d3
Reviewed-on: https://chromium-review.googlesource.com/561681Reviewed-by: 's avatarMichael Moss <mmoss@chromium.org>
Reviewed-by: 's avatarDirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
parent e36a8431
......@@ -1736,6 +1736,7 @@ class Flattener(object):
self._hooks = []
self._hooks_os = {}
self._pre_deps_hooks = []
self._vars = {}
self._flatten()
......@@ -1759,6 +1760,7 @@ class Flattener(object):
_HooksToLines('hooks', self._hooks) +
_HooksToLines('pre_deps_hooks', self._pre_deps_hooks) +
_HooksOsToLines(self._hooks_os) +
_VarsToLines(self._vars) +
['']) # Ensure newline at end of file.
def _flatten_solution(self, solution):
......@@ -1781,6 +1783,10 @@ class Flattener(object):
assert dep.name not in self._deps
self._deps[dep.name] = dep
for key, value in dep.get_vars().iteritems():
assert key not in self._vars
self._vars[key] = (dep, value)
self._hooks.extend([(dep, hook) for hook in dep.orig_deps_hooks])
self._pre_deps_hooks.extend([(dep, hook) for hook in dep.pre_deps_hooks])
......@@ -1958,6 +1964,22 @@ def _HooksOsToLines(hooks_os):
return s
def _VarsToLines(variables):
"""Converts |variables| dict to list of lines for output."""
if not variables:
return []
s = ['vars = {']
for key, tup in sorted(variables.iteritems()):
dep, value = tup
s.extend([
' # %s' % dep.hierarchy(include_url=False),
' "%s": %r,' % (key, value),
'',
])
s.extend(['}', ''])
return s
def CMDgrep(parser, args):
"""Greps through git repos managed by gclient.
......
......@@ -696,6 +696,12 @@ class GClientSmokeGIT(GClientSmokeBase):
'',
'}',
'',
'vars = {',
' # src',
' "DummyVariable": \'repo\',',
'',
'}',
'',
], deps_contents.splitlines())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment