diff --git a/fetch.py b/fetch.py index 067d4c61ab..03ba98671c 100755 --- a/fetch.py +++ b/fetch.py @@ -62,7 +62,7 @@ class Checkout(object): def run(self, cmd, **kwargs): print 'Running: %s' % (' '.join(pipes.quote(x) for x in cmd)) if self.options.dry_run: - return 0 + return '' return subprocess.check_output(cmd, **kwargs) @@ -133,7 +133,7 @@ class GclientGitCheckout(GclientCheckout, GitCheckout): # Configure and do the gclient checkout. self.run_gclient('config', '--spec', self._format_spec()) sync_cmd = ['sync'] - if self.options.nohooks: + if self.options.nohooks or self.spec.get('fetch_hooks'): sync_cmd.append('--nohooks') if self.options.no_history: sync_cmd.append('--no-history') @@ -141,6 +141,11 @@ class GclientGitCheckout(GclientCheckout, GitCheckout): sync_cmd.append('--with_branch_heads') self.run_gclient(*sync_cmd) + for cmd in self.spec.get('fetch_hooks', []): + self.run(cmd) + if self.spec.get('fetch_hooks') and not self.options.nohooks: + self.run_gclient('runhooks') + # Configure git. wd = os.path.join(self.base, self.root) if self.options.dry_run: diff --git a/recipes/chromium.py b/recipes/chromium.py index 6416ee0bbd..ccadd1f4fe 100644 --- a/recipes/chromium.py +++ b/recipes/chromium.py @@ -31,6 +31,8 @@ class Chromium(recipe_util.Recipe): spec['target_os'] = props['target_os'].split(',') if props.get('target_os_only'): spec['target_os_only'] = props['target_os_only'] + install_build_deps = ['src/build/install-build-deps.sh'] + spec['fetch_hooks'] = [install_build_deps] return { 'type': 'gclient_git', 'gclient_git_spec': spec,