#!/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())