Add support to automate.py for building release branches (issue #325).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@428 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
parent
eff39b0f11
commit
9cc8ea09dc
|
@ -127,6 +127,10 @@ else:
|
||||||
# Retrieve the Chromium URL and revision from the CEF repo
|
# Retrieve the Chromium URL and revision from the CEF repo
|
||||||
compat_url = cef_url + "/CHROMIUM_BUILD_COMPATIBILITY.txt?r="+cef_rev
|
compat_url = cef_url + "/CHROMIUM_BUILD_COMPATIBILITY.txt?r="+cef_rev
|
||||||
|
|
||||||
|
release_url = None
|
||||||
|
chromium_url = None
|
||||||
|
chromium_rev = None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Read the remote URL contents
|
# Read the remote URL contents
|
||||||
handle = urllib.urlopen(compat_url)
|
handle = urllib.urlopen(compat_url)
|
||||||
|
@ -136,6 +140,11 @@ try:
|
||||||
# Parse the contents
|
# Parse the contents
|
||||||
config = eval(compat_value, {'__builtins__': None}, None)
|
config = eval(compat_value, {'__builtins__': None}, None)
|
||||||
|
|
||||||
|
if 'release_url' in config:
|
||||||
|
# building from a release
|
||||||
|
release_url = check_url(config['release_url'])
|
||||||
|
else:
|
||||||
|
# building from chromium src
|
||||||
if not 'chromium_url' in config:
|
if not 'chromium_url' in config:
|
||||||
raise Exception("Missing chromium_url value")
|
raise Exception("Missing chromium_url value")
|
||||||
if not 'chromium_revision' in config:
|
if not 'chromium_revision' in config:
|
||||||
|
@ -180,6 +189,7 @@ info = get_svn_info(cef_src_dir)
|
||||||
current_cef_url = info['url']
|
current_cef_url = info['url']
|
||||||
current_cef_rev = info['revision']
|
current_cef_rev = info['revision']
|
||||||
|
|
||||||
|
if release_url is None:
|
||||||
# retrieve the current Chromium URL and revision
|
# retrieve the current Chromium URL and revision
|
||||||
info = get_svn_info(chromium_src_dir)
|
info = get_svn_info(chromium_src_dir)
|
||||||
current_chromium_url = info['url']
|
current_chromium_url = info['url']
|
||||||
|
@ -197,6 +207,11 @@ sys.stdout.write('CEF Revision: '+current_cef_rev+"\n")
|
||||||
if cef_rev_changed:
|
if cef_rev_changed:
|
||||||
sys.stdout.write(' -> CHANGED TO: '+cef_rev+"\n")
|
sys.stdout.write(' -> CHANGED TO: '+cef_rev+"\n")
|
||||||
|
|
||||||
|
release_url_changed = False
|
||||||
|
chromium_url_changed = False
|
||||||
|
chromium_rev_changed = False
|
||||||
|
|
||||||
|
if release_url is None:
|
||||||
# test if the Chromium URL changed
|
# test if the Chromium URL changed
|
||||||
chromium_url_changed = current_chromium_url != chromium_url
|
chromium_url_changed = current_chromium_url != chromium_url
|
||||||
sys.stdout.write('Chromium URL: '+current_chromium_url+"\n")
|
sys.stdout.write('Chromium URL: '+current_chromium_url+"\n")
|
||||||
|
@ -208,16 +223,45 @@ chromium_rev_changed = current_chromium_rev != chromium_rev
|
||||||
sys.stdout.write('Chromium Revision: '+current_chromium_rev+"\n")
|
sys.stdout.write('Chromium Revision: '+current_chromium_rev+"\n")
|
||||||
if chromium_rev_changed:
|
if chromium_rev_changed:
|
||||||
sys.stdout.write(' -> CHANGED TO: '+chromium_rev+"\n")
|
sys.stdout.write(' -> CHANGED TO: '+chromium_rev+"\n")
|
||||||
|
else:
|
||||||
|
# test if the release URL changed
|
||||||
|
current_release_url = 'None'
|
||||||
|
|
||||||
|
path = os.path.join(chromium_dir, '.gclient')
|
||||||
|
if os.path.exists(path):
|
||||||
|
# read the .gclient file
|
||||||
|
fp = open(path, 'r')
|
||||||
|
data = fp.read()
|
||||||
|
fp.close()
|
||||||
|
|
||||||
|
# Parse the contents
|
||||||
|
config_dict = {}
|
||||||
|
try:
|
||||||
|
exec(data, config_dict)
|
||||||
|
current_release_url = config_dict['solutions'][0]['url']
|
||||||
|
except Exception, e:
|
||||||
|
sys.stderr.write('Failed to parse existing .glient file.\n')
|
||||||
|
raise
|
||||||
|
|
||||||
|
release_url_changed = current_release_url != release_url
|
||||||
|
sys.stdout.write('Release URL: '+current_release_url+"\n")
|
||||||
|
if release_url_changed:
|
||||||
|
sys.stdout.write(' -> CHANGED TO: '+release_url+"\n")
|
||||||
|
|
||||||
# true if anything changed
|
# true if anything changed
|
||||||
any_changed = chromium_url_changed or chromium_rev_changed or \
|
any_changed = release_url_changed or chromium_url_changed or \
|
||||||
cef_url_changed or cef_rev_changed
|
chromium_rev_changed or cef_url_changed or cef_rev_changed
|
||||||
if not any_changed:
|
if not any_changed:
|
||||||
sys.stdout.write("No changes.\n")
|
sys.stdout.write("No changes.\n")
|
||||||
|
|
||||||
if chromium_url_changed or options.forceconfig:
|
if release_url_changed or chromium_url_changed or options.forceconfig:
|
||||||
|
if release_url is None:
|
||||||
|
url = chromium_url
|
||||||
|
else:
|
||||||
|
url = release_url
|
||||||
|
|
||||||
# run gclient config to create the .gclient file
|
# run gclient config to create the .gclient file
|
||||||
run('gclient config '+chromium_url, chromium_dir, depot_tools_dir)
|
run('gclient config '+url, chromium_dir, depot_tools_dir)
|
||||||
|
|
||||||
path = os.path.join(chromium_dir, '.gclient')
|
path = os.path.join(chromium_dir, '.gclient')
|
||||||
if not os.path.exists(path):
|
if not os.path.exists(path):
|
||||||
|
@ -229,13 +273,21 @@ if chromium_url_changed or options.forceconfig:
|
||||||
data = fp.read()
|
data = fp.read()
|
||||||
fp.close()
|
fp.close()
|
||||||
|
|
||||||
# populate "custom_deps" section
|
custom_deps = \
|
||||||
data = data.replace('"custom_deps" : {', '"custom_deps" : {'+\
|
|
||||||
"\n "+'"src/third_party/WebKit/LayoutTests": None,'+\
|
"\n "+'"src/third_party/WebKit/LayoutTests": None,'+\
|
||||||
"\n "+'"src/chrome_frame/tools/test/reference_build/chrome": None,'+\
|
"\n "+'"src/chrome_frame/tools/test/reference_build/chrome": None,'+\
|
||||||
"\n "+'"src/chrome/tools/test/reference_build/chrome_mac": None,'+\
|
"\n "+'"src/chrome/tools/test/reference_build/chrome_mac": None,'+\
|
||||||
"\n "+'"src/chrome/tools/test/reference_build/chrome_win": None,'+\
|
"\n "+'"src/chrome/tools/test/reference_build/chrome_win": None,'+\
|
||||||
"\n "+'"src/chrome/tools/test/reference_build/chrome_linux": None,')
|
"\n "+'"src/chrome/tools/test/reference_build/chrome_linux": None,'
|
||||||
|
|
||||||
|
if not release_url is None:
|
||||||
|
# TODO: Read the DEPS file and exclude all non-src directories.
|
||||||
|
custom_deps += \
|
||||||
|
"\n "+'"chromeos": None,'+\
|
||||||
|
"\n "+'"depot_tools": None,'
|
||||||
|
|
||||||
|
# populate "custom_deps" section
|
||||||
|
data = data.replace('"custom_deps" : {', '"custom_deps" : {'+custom_deps)
|
||||||
|
|
||||||
# write the new .gclient file
|
# write the new .gclient file
|
||||||
fp = open(path, 'w')
|
fp = open(path, 'w')
|
||||||
|
@ -252,10 +304,14 @@ if options.forceclean:
|
||||||
options.forcebuild = True
|
options.forcebuild = True
|
||||||
options.forcedistrib = True
|
options.forcedistrib = True
|
||||||
|
|
||||||
|
if release_url is None:
|
||||||
if chromium_url_changed or chromium_rev_changed or options.forceupdate:
|
if chromium_url_changed or chromium_rev_changed or options.forceupdate:
|
||||||
# download/update the Chromium source code
|
# download/update the Chromium source code
|
||||||
run('gclient sync --revision src@'+chromium_rev+' --jobs 8 --force', \
|
run('gclient sync --revision src@'+chromium_rev+' --jobs 8 --force', \
|
||||||
chromium_dir, depot_tools_dir)
|
chromium_dir, depot_tools_dir)
|
||||||
|
elif release_url_changed or options.forceupdate:
|
||||||
|
# download/update the release source code
|
||||||
|
run('gclient sync --jobs 8 --force', chromium_dir, depot_tools_dir)
|
||||||
|
|
||||||
if not os.path.exists(cef_src_dir) or cef_url_changed:
|
if not os.path.exists(cef_src_dir) or cef_url_changed:
|
||||||
if cef_url_changed and os.path.exists(cef_src_dir):
|
if cef_url_changed and os.path.exists(cef_src_dir):
|
||||||
|
|
Loading…
Reference in New Issue