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

Bug: 570091
Change-Id: Ib3296a201bdcbd4ec350ee0e98112a89e388fd61
Reviewed-on: https://chromium-review.googlesource.com/517049
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
diff --git a/gclient.py b/gclient.py
index 7dd3a6c..f861ed9 100755
--- a/gclient.py
+++ b/gclient.py
@@ -644,13 +644,19 @@
 
     # 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))