Bug 786010 - create manifest as part of the clang build. r=rail.

This commit is contained in:
Rafael Ávila de Espíndola 2012-08-27 16:05:35 -04:00
parent b95f39c7d8
commit 98d8937345
2 changed files with 26 additions and 55 deletions

View File

@ -14,6 +14,8 @@ import shutil
import tarfile
import subprocess
import platform
import sys
import simplejson
def check_run(args):
r = subprocess.call(args)
@ -70,6 +72,29 @@ def build_one_stage(env, stage_dir, is_stage_one):
build_one_stage_aux(stage_dir, is_stage_one)
with_env(env, f)
def build_tooltool_manifest():
def key_sort(item):
item = item[0]
if item == 'size':
return 0
if item == 'digest':
return 1
if item == 'algorithm':
return 3
return 4
basedir = os.path.split(os.path.realpath(sys.argv[0]))[0]
tooltool = basedir + '/tooltool.py'
setup = basedir + '/setup.sh'
manifest = 'clang.manifest'
check_run(['python', tooltool, '-m', 'clang.manifest', 'add',
setup, 'clang.tar.bz2'])
data = simplejson.load(file('clang.manifest'))
data = [{'clang_version' : 'r%s' % llvm_revision }] + data
out = file('clang.manifest','w')
simplejson.dump(data, out, indent=0, item_sort_key=key_sort)
out.write('\n')
isDarwin = platform.system() == "Darwin"
def build_one_stage_aux(stage_dir, is_stage_one):
@ -136,3 +161,4 @@ build_one_stage({"CC" : stage1_inst_dir + "/bin/clang %s" % extra_cflags,
stage2_dir, False)
build_tar_package("tar", "clang.tar.bz2", stage2_dir, "clang")
build_tooltool_manifest()

View File

@ -1,55 +0,0 @@
#!/bin/python
import os
import os.path
import simplejson
import sys
import subprocess
import urllib
import glob
def check_run(args):
r = subprocess.call(args)
assert r == 0
old_files = glob.glob('*.manifest')
for f in old_files:
try:
os.unlink(f)
except:
pass
basedir = os.path.split(os.path.realpath(sys.argv[0]))[0]
tooltool = basedir + '/tooltool.py'
setup = basedir + '/setup.sh'
check_run(['python', tooltool, '-m', 'linux32.manifest', 'add',
'clang-linux32.tar.bz2', setup])
check_run(['python', tooltool, '-m', 'linux64.manifest', 'add',
'clang-linux64.tar.bz2', setup])
check_run(['python', tooltool, '-m', 'darwin.manifest', 'add',
'clang-darwin.tar.bz2', setup])
def key_sort(item):
item = item[0]
if item == 'size':
return 0
if item == 'digest':
return 1
if item == 'algorithm':
return 3
return 4
rev = os.path.basename(os.getcwd()).split('-')[1]
for platform in ['darwin', 'linux32', 'linux64']:
old_name = 'clang-' + platform + '.tar.bz2'
manifest = platform + '.manifest'
data = eval(file(manifest).read())
new_name = data[1]['digest']
data[1]['filename'] = 'clang.tar.bz2'
data = [{'clang_version' : 'r%s' % rev }] + data
out = file(manifest,'w')
simplejson.dump(data, out, indent=0, item_sort_key=key_sort)
out.write('\n')
os.rename(old_name, new_name)