Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: tools/clang/scripts/package.py

Issue 1508403002: Revert of roll clang 254049:254793 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2015 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """This script will check out llvm and clang, and then package the results up 6 """This script will check out llvm and clang, and then package the results up
7 to a tgz file.""" 7 to a tgz file."""
8 8
9 import argparse 9 import argparse
10 import fnmatch 10 import fnmatch
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 59
60 def main(): 60 def main():
61 if sys.platform == 'win32': 61 if sys.platform == 'win32':
62 try: 62 try:
63 subprocess.check_output(['grep', '--help'], shell=True) 63 subprocess.check_output(['grep', '--help'], shell=True)
64 except subprocess.CalledProcessError: 64 except subprocess.CalledProcessError:
65 print 'Add gnuwin32 to your PATH, then try again.' 65 print 'Add gnuwin32 to your PATH, then try again.'
66 return 1 66 return 1
67 67
68 parser = argparse.ArgumentParser(description='build and package clang') 68 parser = argparse.ArgumentParser(description='build and package clang')
69 parser.add_argument('--gcc-toolchain',
70 help="the prefix for the GCC version used for building. "
71 "For /opt/foo/bin/gcc, pass "
72 "'--gcc-toolchain '/opt/foo'")
73
69 args = parser.parse_args() 74 args = parser.parse_args()
70 75
71 with open('buildlog.txt', 'w') as log: 76 with open('buildlog.txt', 'w') as log:
72 Tee('Diff in llvm:\n', log) 77 Tee('Diff in llvm:\n', log)
73 TeeCmd(['svn', 'stat', LLVM_DIR], log, fail_hard=False) 78 TeeCmd(['svn', 'stat', LLVM_DIR], log, fail_hard=False)
74 TeeCmd(['svn', 'diff', LLVM_DIR], log, fail_hard=False) 79 TeeCmd(['svn', 'diff', LLVM_DIR], log, fail_hard=False)
75 Tee('Diff in llvm/tools/clang:\n', log) 80 Tee('Diff in llvm/tools/clang:\n', log)
76 TeeCmd(['svn', 'stat', os.path.join(LLVM_DIR, 'tools', 'clang')], 81 TeeCmd(['svn', 'stat', os.path.join(LLVM_DIR, 'tools', 'clang')],
77 log, fail_hard=False) 82 log, fail_hard=False)
78 TeeCmd(['svn', 'diff', os.path.join(LLVM_DIR, 'tools', 'clang')], 83 TeeCmd(['svn', 'diff', os.path.join(LLVM_DIR, 'tools', 'clang')],
(...skipping 19 matching lines...) Expand all
98 103
99 Tee('Starting build\n', log) 104 Tee('Starting build\n', log)
100 105
101 # Do a clobber build. 106 # Do a clobber build.
102 shutil.rmtree(LLVM_BOOTSTRAP_DIR, ignore_errors=True) 107 shutil.rmtree(LLVM_BOOTSTRAP_DIR, ignore_errors=True)
103 shutil.rmtree(LLVM_BOOTSTRAP_INSTALL_DIR, ignore_errors=True) 108 shutil.rmtree(LLVM_BOOTSTRAP_INSTALL_DIR, ignore_errors=True)
104 shutil.rmtree(LLVM_BUILD_DIR, ignore_errors=True) 109 shutil.rmtree(LLVM_BUILD_DIR, ignore_errors=True)
105 110
106 build_cmd = [sys.executable, os.path.join(THIS_DIR, 'update.py'), 111 build_cmd = [sys.executable, os.path.join(THIS_DIR, 'update.py'),
107 '--bootstrap', '--force-local-build', '--run-tests'] 112 '--bootstrap', '--force-local-build', '--run-tests']
113 if args.gcc_toolchain is not None:
114 build_cmd.extend(['--gcc-toolchain', args.gcc_toolchain])
108 TeeCmd(build_cmd, log) 115 TeeCmd(build_cmd, log)
109 116
110 stamp = open(STAMP_FILE).read().rstrip() 117 stamp = open(STAMP_FILE).read().rstrip()
111 pdir = 'clang-' + stamp 118 pdir = 'clang-' + stamp
112 print pdir 119 print pdir
113 shutil.rmtree(pdir, ignore_errors=True) 120 shutil.rmtree(pdir, ignore_errors=True)
114 121
115 # Copy a whitelist of files to the directory we're going to tar up. 122 # Copy a whitelist of files to the directory we're going to tar up.
116 # This supports the same patterns that the fnmatch module understands. 123 # This supports the same patterns that the fnmatch module understands.
117 exe_ext = '.exe' if sys.platform == 'win32' else '' 124 exe_ext = '.exe' if sys.platform == 'win32' else ''
(...skipping 14 matching lines...) Expand all
132 ]) 139 ])
133 if sys.platform == 'darwin': 140 if sys.platform == 'darwin':
134 want.extend(['bin/libc++.1.dylib', 141 want.extend(['bin/libc++.1.dylib',
135 # Copy only the OSX (ASan and profile) and iossim (ASan) 142 # Copy only the OSX (ASan and profile) and iossim (ASan)
136 # runtime libraries: 143 # runtime libraries:
137 'lib/clang/*/lib/darwin/*asan_osx*', 144 'lib/clang/*/lib/darwin/*asan_osx*',
138 'lib/clang/*/lib/darwin/*asan_iossim*', 145 'lib/clang/*/lib/darwin/*asan_iossim*',
139 'lib/clang/*/lib/darwin/*profile_osx*', 146 'lib/clang/*/lib/darwin/*profile_osx*',
140 ]) 147 ])
141 elif sys.platform.startswith('linux'): 148 elif sys.platform.startswith('linux'):
142 # Copy the stdlibc++.so.6 we linked Clang against so it can run.
143 want.append('lib/libstdc++.so.6')
144 # Copy only 149 # Copy only
145 # lib/clang/*/lib/linux/libclang_rt.{[atm]san,san,ubsan,profile}-*.a , 150 # lib/clang/*/lib/linux/libclang_rt.{[atm]san,san,ubsan,profile}-*.a ,
146 # but not dfsan. 151 # but not dfsan.
147 want.extend(['lib/clang/*/lib/linux/*[atm]san*', 152 want.extend(['lib/clang/*/lib/linux/*[atm]san*',
148 'lib/clang/*/lib/linux/*ubsan*', 153 'lib/clang/*/lib/linux/*ubsan*',
149 'lib/clang/*/lib/linux/*libclang_rt.san*', 154 'lib/clang/*/lib/linux/*libclang_rt.san*',
150 'lib/clang/*/lib/linux/*profile*', 155 'lib/clang/*/lib/linux/*profile*',
151 'lib/clang/*/msan_blacklist.txt', 156 'lib/clang/*/msan_blacklist.txt',
152 ]) 157 ])
153 elif sys.platform == 'win32': 158 elif sys.platform == 'win32':
154 want.extend(['lib/clang/*/lib/windows/clang_rt.asan*.dll', 159 want.extend(['lib/clang/*/lib/windows/clang_rt.asan*.dll',
155 'lib/clang/*/lib/windows/clang_rt.asan*.lib', 160 'lib/clang/*/lib/windows/clang_rt.asan*.lib',
156 'lib/clang/*/include_sanitizer/*', 161 'lib/clang/*/include_sanitizer/*',
157 ]) 162 ])
163 if args.gcc_toolchain is not None:
164 # Copy the stdlibc++.so.6 we linked Clang against so it can run.
165 want.append('lib/libstdc++.so.6')
158 166
159 for root, dirs, files in os.walk(LLVM_RELEASE_DIR): 167 for root, dirs, files in os.walk(LLVM_RELEASE_DIR):
160 # root: third_party/llvm-build/Release+Asserts/lib/..., rel_root: lib/... 168 # root: third_party/llvm-build/Release+Asserts/lib/..., rel_root: lib/...
161 rel_root = root[len(LLVM_RELEASE_DIR)+1:] 169 rel_root = root[len(LLVM_RELEASE_DIR)+1:]
162 rel_files = [os.path.join(rel_root, f) for f in files] 170 rel_files = [os.path.join(rel_root, f) for f in files]
163 wanted_files = list(set(itertools.chain.from_iterable( 171 wanted_files = list(set(itertools.chain.from_iterable(
164 fnmatch.filter(rel_files, p) for p in want))) 172 fnmatch.filter(rel_files, p) for p in want)))
165 if wanted_files: 173 if wanted_files:
166 # Guaranteed to not yet exist at this point: 174 # Guaranteed to not yet exist at this point:
167 os.makedirs(os.path.join(pdir, rel_root)) 175 os.makedirs(os.path.join(pdir, rel_root))
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 filter=PrintTarProgress) 235 filter=PrintTarProgress)
228 print ('gsutil cp -a public-read %s.tgz ' 236 print ('gsutil cp -a public-read %s.tgz '
229 'gs://chromium-browser-clang/%s/%s.tgz') % (golddir, platform, 237 'gs://chromium-browser-clang/%s/%s.tgz') % (golddir, platform,
230 golddir) 238 golddir)
231 239
232 # FIXME: Warn if the file already exists on the server. 240 # FIXME: Warn if the file already exists on the server.
233 241
234 242
235 if __name__ == '__main__': 243 if __name__ == '__main__':
236 sys.exit(main()) 244 sys.exit(main())
OLDNEW
« no previous file with comments | « third_party/instrumented_libraries/binaries/msan-no-origins-trusty.tgz.sha1 ('k') | tools/clang/scripts/update.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698