| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 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 """Windows can't run .sh files, so this is a Python implementation of | 6 """Windows can't run .sh files, so this is a Python implementation of |
| 7 update.sh. This script should replace update.sh on all platforms eventually.""" | 7 update.sh. This script should replace update.sh on all platforms eventually.""" |
| 8 | 8 |
| 9 import argparse | 9 import argparse |
| 10 import contextlib | 10 import contextlib |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 import time | 21 import time |
| 22 import urllib2 | 22 import urllib2 |
| 23 import zipfile | 23 import zipfile |
| 24 | 24 |
| 25 # Do NOT CHANGE this if you don't know what you're doing -- see | 25 # Do NOT CHANGE this if you don't know what you're doing -- see |
| 26 # https://code.google.com/p/chromium/wiki/UpdatingClang | 26 # https://code.google.com/p/chromium/wiki/UpdatingClang |
| 27 # Reverting problematic clang rolls is safe, though. | 27 # Reverting problematic clang rolls is safe, though. |
| 28 # Note: this revision is only used for Windows. Other platforms use update.sh. | 28 # Note: this revision is only used for Windows. Other platforms use update.sh. |
| 29 # TODO(thakis): Use the same revision on Windows and non-Windows. | 29 # TODO(thakis): Use the same revision on Windows and non-Windows. |
| 30 # TODO(thakis): Remove update.sh, use update.py everywhere. | 30 # TODO(thakis): Remove update.sh, use update.py everywhere. |
| 31 LLVM_WIN_REVISION = '239674' | 31 LLVM_WIN_REVISION = '242415' |
| 32 | 32 |
| 33 use_head_revision = 'LLVM_FORCE_HEAD_REVISION' in os.environ | 33 use_head_revision = 'LLVM_FORCE_HEAD_REVISION' in os.environ |
| 34 if use_head_revision: | 34 if use_head_revision: |
| 35 LLVM_WIN_REVISION = 'HEAD' | 35 LLVM_WIN_REVISION = 'HEAD' |
| 36 | 36 |
| 37 # This is incremented when pushing a new build of Clang at the same revision. | 37 # This is incremented when pushing a new build of Clang at the same revision. |
| 38 CLANG_SUB_REVISION=1 | 38 CLANG_SUB_REVISION=1 |
| 39 | 39 |
| 40 PACKAGE_VERSION = "%s-%s" % (LLVM_WIN_REVISION, CLANG_SUB_REVISION) | 40 PACKAGE_VERSION = "%s-%s" % (LLVM_WIN_REVISION, CLANG_SUB_REVISION) |
| 41 | 41 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 53 COMPILER_RT_BUILD_DIR = os.path.join(LLVM_BUILD_DIR, '32bit-compiler-rt') | 53 COMPILER_RT_BUILD_DIR = os.path.join(LLVM_BUILD_DIR, '32bit-compiler-rt') |
| 54 CLANG_DIR = os.path.join(LLVM_DIR, 'tools', 'clang') | 54 CLANG_DIR = os.path.join(LLVM_DIR, 'tools', 'clang') |
| 55 LLD_DIR = os.path.join(LLVM_DIR, 'tools', 'lld') | 55 LLD_DIR = os.path.join(LLVM_DIR, 'tools', 'lld') |
| 56 COMPILER_RT_DIR = os.path.join(LLVM_DIR, 'projects', 'compiler-rt') | 56 COMPILER_RT_DIR = os.path.join(LLVM_DIR, 'projects', 'compiler-rt') |
| 57 LIBCXX_DIR = os.path.join(LLVM_DIR, 'projects', 'libcxx') | 57 LIBCXX_DIR = os.path.join(LLVM_DIR, 'projects', 'libcxx') |
| 58 LIBCXXABI_DIR = os.path.join(LLVM_DIR, 'projects', 'libcxxabi') | 58 LIBCXXABI_DIR = os.path.join(LLVM_DIR, 'projects', 'libcxxabi') |
| 59 LLVM_BUILD_TOOLS_DIR = os.path.abspath( | 59 LLVM_BUILD_TOOLS_DIR = os.path.abspath( |
| 60 os.path.join(LLVM_DIR, '..', 'llvm-build-tools')) | 60 os.path.join(LLVM_DIR, '..', 'llvm-build-tools')) |
| 61 STAMP_FILE = os.path.join(LLVM_DIR, '..', 'llvm-build', 'cr_build_revision') | 61 STAMP_FILE = os.path.join(LLVM_DIR, '..', 'llvm-build', 'cr_build_revision') |
| 62 BINUTILS_DIR = os.path.join(THIRD_PARTY_DIR, 'binutils') | 62 BINUTILS_DIR = os.path.join(THIRD_PARTY_DIR, 'binutils') |
| 63 VERSION = '3.7.0' | 63 VERSION = '3.8.0' |
| 64 | 64 |
| 65 # URL for pre-built binaries. | 65 # URL for pre-built binaries. |
| 66 CDS_URL = 'https://commondatastorage.googleapis.com/chromium-browser-clang' | 66 CDS_URL = 'https://commondatastorage.googleapis.com/chromium-browser-clang' |
| 67 | 67 |
| 68 LLVM_REPO_URL='https://llvm.org/svn/llvm-project' | 68 LLVM_REPO_URL='https://llvm.org/svn/llvm-project' |
| 69 if 'LLVM_REPO_URL' in os.environ: | 69 if 'LLVM_REPO_URL' in os.environ: |
| 70 LLVM_REPO_URL = os.environ['LLVM_REPO_URL'] | 70 LLVM_REPO_URL = os.environ['LLVM_REPO_URL'] |
| 71 | 71 |
| 72 | 72 |
| 73 def DownloadUrl(url, output_file): | 73 def DownloadUrl(url, output_file): |
| (...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 726 # clang previously downloaded, keep it up-to-date. | 726 # clang previously downloaded, keep it up-to-date. |
| 727 # If you don't want this, delete third_party/llvm-build on your machine. | 727 # If you don't want this, delete third_party/llvm-build on your machine. |
| 728 if os.path.isdir(LLVM_BUILD_DIR): | 728 if os.path.isdir(LLVM_BUILD_DIR): |
| 729 is_clang_required = True | 729 is_clang_required = True |
| 730 if not is_clang_required: | 730 if not is_clang_required: |
| 731 return 0 | 731 return 0 |
| 732 if re.search(r'\b(make_clang_dir)=', os.environ.get('GYP_DEFINES', '')): | 732 if re.search(r'\b(make_clang_dir)=', os.environ.get('GYP_DEFINES', '')): |
| 733 print 'Skipping Clang update (make_clang_dir= was set in GYP_DEFINES).' | 733 print 'Skipping Clang update (make_clang_dir= was set in GYP_DEFINES).' |
| 734 return 0 | 734 return 0 |
| 735 | 735 |
| 736 if use_head_revision: | |
| 737 # TODO(hans): Remove after the next roll. | |
| 738 global VERSION | |
| 739 VERSION = '3.8.0' | |
| 740 | |
| 741 global LLVM_WIN_REVISION, PACKAGE_VERSION | 736 global LLVM_WIN_REVISION, PACKAGE_VERSION |
| 742 if args.print_revision: | 737 if args.print_revision: |
| 743 if use_head_revision: | 738 if use_head_revision: |
| 744 print GetSvnRevision(LLVM_DIR) | 739 print GetSvnRevision(LLVM_DIR) |
| 745 else: | 740 else: |
| 746 print PACKAGE_VERSION | 741 print PACKAGE_VERSION |
| 747 return 0 | 742 return 0 |
| 748 | 743 |
| 749 if args.print_clang_version: | 744 if args.print_clang_version: |
| 750 sys.stdout.write(VERSION) | 745 sys.stdout.write(VERSION) |
| (...skipping 12 matching lines...) Expand all Loading... |
| 763 | 758 |
| 764 args.force_local_build = True | 759 args.force_local_build = True |
| 765 # Skip local patches when using HEAD: they probably don't apply anymore. | 760 # Skip local patches when using HEAD: they probably don't apply anymore. |
| 766 args.with_patches = False | 761 args.with_patches = False |
| 767 | 762 |
| 768 return UpdateClang(args) | 763 return UpdateClang(args) |
| 769 | 764 |
| 770 | 765 |
| 771 if __name__ == '__main__': | 766 if __name__ == '__main__': |
| 772 sys.exit(main()) | 767 sys.exit(main()) |
| OLD | NEW |