Commit 048da08e authored by jochen@chromium.org's avatar jochen@chromium.org

Add recipe for v8

BUG=none
R=dpranke@chromium.org,machenbach@chromium.org

Review URL: https://codereview.chromium.org/225743005

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@268466 0039d316-1c4b-4281-b951-d872f2087c98
parent d5a1ab12
...@@ -111,10 +111,12 @@ class GclientGitCheckout(GclientCheckout, GitCheckout): ...@@ -111,10 +111,12 @@ class GclientGitCheckout(GclientCheckout, GitCheckout):
def init(self): def init(self):
# Configure and do the gclient checkout. # Configure and do the gclient checkout.
self.run_gclient('config', '--spec', self.spec['gclient_spec']) self.run_gclient('config', '--spec', self.spec['gclient_spec'])
sync_cmd = ['sync']
if self.options.nohooks: if self.options.nohooks:
self.run_gclient('sync', '--nohooks') sync_cmd.append('--nohooks')
else: if self.spec.get('with_branch_heads', False):
self.run_gclient('sync') sync_cmd.append('--with_branch_heads')
self.run_gclient(*sync_cmd)
# Configure git. # Configure git.
wd = os.path.join(self.base, self.root) wd = os.path.join(self.base, self.root)
...@@ -159,10 +161,11 @@ class GclientGitSvnCheckout(GclientGitCheckout, SvnCheckout): ...@@ -159,10 +161,11 @@ class GclientGitSvnCheckout(GclientGitCheckout, SvnCheckout):
wd = os.path.join(self.base, real_path) wd = os.path.join(self.base, real_path)
if self.options.dry_run: if self.options.dry_run:
print 'cd %s' % wd print 'cd %s' % wd
self.run_git('svn', 'init', '--prefix=origin/', '-T', prefix = svn_spec.get('svn_prefix', 'origin/')
self.run_git('svn', 'init', '--prefix=' + prefix, '-T',
svn_spec['svn_branch'], svn_spec['svn_url'], cwd=wd) svn_spec['svn_branch'], svn_spec['svn_url'], cwd=wd)
self.run_git('config', '--replace', 'svn-remote.svn.fetch', self.run_git('config', '--replace', 'svn-remote.svn.fetch',
svn_spec['svn_branch'] + ':refs/remotes/origin/' + svn_spec['svn_branch'] + ':refs/remotes/' + prefix +
svn_spec['svn_ref'], cwd=wd) svn_spec['svn_ref'], cwd=wd)
self.run_git('svn', 'fetch', cwd=wd) self.run_git('svn', 'fetch', cwd=wd)
......
...@@ -358,6 +358,10 @@ class GitWrapper(SCMWrapper): ...@@ -358,6 +358,10 @@ class GitWrapper(SCMWrapper):
self._DeleteOrMove(options.force) self._DeleteOrMove(options.force)
self._Clone(revision, url, options) self._Clone(revision, url, options)
self._UpdateBranchHeads(options, fetch=True) self._UpdateBranchHeads(options, fetch=True)
if deps_revision and deps_revision.startswith('branch-heads/'):
deps_branch = deps_revision.replace('branch-heads/', '')
self._Capture(['branch', deps_branch, deps_revision])
self._Capture(['checkout', '--quiet', deps_branch])
if file_list is not None: if file_list is not None:
files = self._Capture(['ls-files']).splitlines() files = self._Capture(['ls-files']).splitlines()
file_list.extend([os.path.join(self.checkout_path, f) for f in files]) file_list.extend([os.path.join(self.checkout_path, f) for f in files])
......
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import sys
import recipe_util # pylint: disable=F0401
# This class doesn't need an __init__ method, so we disable the warning
# pylint: disable=W0232
class V8(recipe_util.Recipe):
"""Basic Recipe class for V8."""
@staticmethod
def fetch_spec(props):
ref = 'branch-heads/bleeding_edge'
url = 'https://chromium.googlesource.com/external/v8.git@%s' % ref
solution = { 'name' :'v8',
'url' : url,
'deps_file': '.DEPS.git',
'managed' : False,
'custom_deps': {},
'safesync_url': '',
}
spec = {
'solutions': [solution],
'svn_url': 'https://v8.googlecode.com/svn',
'svn_branch': 'branches/bleeding_edge',
'svn_ref': 'bleeding_edge',
'svn_prefix': 'branch-heads/',
'with_branch_heads': True,
}
checkout_type = 'gclient_git_svn'
if props.get('nosvn'):
checkout_type = 'gclient_git'
spec_type = '%s_spec' % checkout_type
return {
'type': checkout_type,
spec_type: spec,
}
@staticmethod
def expected_root(_props):
return 'v8'
def main(argv=None):
return V8().handle_args(argv)
if __name__ == '__main__':
sys.exit(main(sys.argv))
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