|  | #!/usr/bin/env python | 
|  | # Copyright 2017 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. | 
|  |  | 
|  | """Script to download llvm-objdump and related utils from google storage.""" | 
|  |  | 
|  | import os | 
|  | import re | 
|  | import subprocess | 
|  | import sys | 
|  | import urllib2 | 
|  |  | 
|  | import update | 
|  |  | 
|  | LLVM_BUILD_DIR = update.LLVM_BUILD_DIR | 
|  | OBJDUMP_PATH = os.path.join(LLVM_BUILD_DIR, 'bin', 'llvm-objdump') | 
|  | STAMP_FILE = os.path.normpath( | 
|  | os.path.join(LLVM_BUILD_DIR, 'llvmobjdump_build_revision')) | 
|  |  | 
|  |  | 
|  | def AlreadyUpToDate(): | 
|  | if not os.path.exists(OBJDUMP_PATH) or not os.path.exists(STAMP_FILE): | 
|  | return False | 
|  | stamp = update.ReadStampFile(STAMP_FILE) | 
|  | return stamp.rstrip() == update.PACKAGE_VERSION | 
|  |  | 
|  |  | 
|  | def DownloadAndUnpackLlvmObjDumpPackage(platform): | 
|  | cds_file = 'llvmobjdump-%s.tgz' % update.PACKAGE_VERSION | 
|  | cds_full_url = update.GetPlatformUrlPrefix(platform) + cds_file | 
|  | try: | 
|  | update.DownloadAndUnpack(cds_full_url, update.LLVM_BUILD_DIR) | 
|  | except urllib2.URLError: | 
|  | print 'Failed to download prebuilt utils %s' % cds_file | 
|  | print 'Use --force-local-build if you want to build locally.' | 
|  | print 'Exiting.' | 
|  | sys.exit(1) | 
|  |  | 
|  |  | 
|  | def main(): | 
|  | if not AlreadyUpToDate(): | 
|  | DownloadAndUnpackLlvmObjDumpPackage(sys.platform) | 
|  | return 0 | 
|  |  | 
|  | if __name__ == '__main__': | 
|  | sys.exit(main()) |