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

gclient: allow dict syntax in deps, in preparation for conditions

Bug: 570091
Change-Id: Ib3296a201bdcbd4ec350ee0e98112a89e388fd61
Reviewed-on: https://chromium-review.googlesource.com/517049Reviewed-by: 's avatarAndrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
parent 694773d5
......@@ -644,13 +644,19 @@ class Dependency(gclient_utils.WorkItem, DependencySettings):
# Convert the deps into real Dependency.
deps_to_add = []
for name, url in deps.iteritems():
for name, dep_value in deps.iteritems():
should_process = self.recursion_limit and self.should_process
deps_file = self.deps_file
if self.recursedeps is not None:
ent = self.recursedeps.get(name)
if ent is not None:
deps_file = ent['deps_file']
if isinstance(dep_value, basestring):
url = dep_value
else:
# This should be guaranteed by schema checking in gclient_eval.
assert isinstance(dep_value, dict)
url = dep_value['url']
deps_to_add.append(Dependency(
self, name, url, None, None, self.custom_vars, None,
deps_file, should_process, use_relative_paths))
......
......@@ -35,7 +35,14 @@ _GCLIENT_SCHEMA = schema.Schema({
#
# Var(): allows variable substitution (either from 'vars' dict below,
# or command-line override)
schema.Optional('deps'): {schema.Optional(basestring): basestring},
schema.Optional('deps'): {
schema.Optional(basestring): schema.Or(
basestring,
{
'url': basestring,
},
),
},
# Similar to 'deps' (see above) - also keyed by OS (e.g. 'linux').
# Also see 'target_os'.
......
......@@ -447,7 +447,9 @@ pre_deps_hooks = [
self._commit_git('repo_6', {
'DEPS': """
deps = {
'src/repo2': '%(git_base)srepo_2@%(hash)s',
'src/repo2': {
'url': '%(git_base)srepo_2@%(hash)s',
},
}
hooks = [
{
......
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