Index: gclient.py |
diff --git a/gclient.py b/gclient.py |
index ed08e47f423cb96bbd6ba9c9ca2902cbc394cc62..9c4077153edbc41fe0155d5408dd3c27c5c84b53 100755 |
--- a/gclient.py |
+++ b/gclient.py |
@@ -288,7 +288,8 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): |
"""Object that represents a dependency checkout.""" |
def __init__(self, parent, name, url, safesync_url, managed, custom_deps, |
- custom_vars, custom_hooks, deps_file, should_process): |
+ custom_vars, custom_hooks, deps_file, should_process, |
+ tmpdir_stage): |
gclient_utils.WorkItem.__init__(self, name) |
DependencySettings.__init__( |
self, parent, url, safesync_url, managed, custom_deps, custom_vars, |
@@ -313,6 +314,7 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): |
# This is the scm used to checkout self.url. It may be used by dependencies |
# to get the datetime of the revision we checked out. |
self._used_scm = None |
+ self.tmpdir_stage = tmpdir_stage |
if not self.name and self.parent: |
raise gclient_utils.Error('Dependency without name') |
@@ -500,6 +502,8 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): |
self.local_target_os = local_scope['target_os'] |
# load os specific dependencies if defined. these dependencies may |
# override or extend the values defined by the 'deps' member. |
+ |
+ tmpdir_staged_deps = local_scope.get('tmpdir_stage', []) |
target_os_deps = {} |
if 'deps_os' in local_scope: |
for deps_os_key in self.target_os: |
@@ -541,7 +545,7 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): |
should_process = self.recursion_limit and self.should_process |
deps_to_add.append(Dependency( |
self, name, url, None, None, None, None, None, |
- self.deps_file, should_process)) |
+ self.deps_file, should_process, name in tmpdir_staged_deps)) |
deps_to_add.sort(key=lambda x: x.name) |
# override named sets of hooks by the custom hooks |
@@ -632,6 +636,7 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): |
# Create a shallow copy to mutate revision. |
options = copy.copy(options) |
options.revision = revision_overrides.get(self.name) |
+ options.stage_clone = self.tmpdir_stage |
self.maybeGetParentRevision( |
command, options, parsed_url, self.parent.name, revision_overrides) |
self._used_scm = gclient_scm.CreateSCM( |