| Index: tools/clang/scripts/update.py
|
| diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
|
| index 26dfa02e02a0f23249447c18fb3b3a0f4374dfb3..c77a4fb84c98551e3f1cc80ab7230011507872fc 100755
|
| --- a/tools/clang/scripts/update.py
|
| +++ b/tools/clang/scripts/update.py
|
| @@ -6,7 +6,6 @@
|
| """Windows can't run .sh files, so this is a Python implementation of
|
| update.sh. This script should replace update.sh on all platforms eventually."""
|
|
|
| -import argparse
|
| import os
|
| import re
|
| import shutil
|
| @@ -31,7 +30,6 @@
|
| THIS_DIR = os.path.abspath(os.path.dirname(__file__))
|
| CHROMIUM_DIR = os.path.abspath(os.path.join(THIS_DIR, '..', '..', '..'))
|
| LLVM_DIR = os.path.join(CHROMIUM_DIR, 'third_party', 'llvm')
|
| -CHROME_TOOLS_SHIM_DIR = os.path.join(LLVM_DIR, 'tools', 'chrometools')
|
| LLVM_BUILD_DIR = os.path.join(CHROMIUM_DIR, 'third_party', 'llvm-build',
|
| 'Release+Asserts')
|
| COMPILER_RT_BUILD_DIR = os.path.join(LLVM_BUILD_DIR, '32bit-compiler-rt')
|
| @@ -131,32 +129,6 @@
|
| RunCommand(command)
|
|
|
|
|
| -def DeleteChromeToolsShim():
|
| - shutil.rmtree(CHROME_TOOLS_SHIM_DIR)
|
| -
|
| -
|
| -def CreateChromeToolsShim():
|
| - """Hooks the Chrome tools into the LLVM build.
|
| -
|
| - Several Chrome tools have dependencies on LLVM/Clang libraries. The LLVM build
|
| - detects implicit tools in the tools subdirectory, so this helper install a
|
| - shim CMakeLists.txt that forwards to the real directory for the Chrome tools.
|
| -
|
| - Note that the shim directory name intentionally has no - or _. The implicit
|
| - tool detection logic munges them in a weird way."""
|
| - assert not any(i in os.path.basename(CHROME_TOOLS_SHIM_DIR) for i in '-_')
|
| - os.mkdir(CHROME_TOOLS_SHIM_DIR)
|
| - with file(os.path.join(CHROME_TOOLS_SHIM_DIR, 'CMakeLists.txt'), 'w') as f:
|
| - f.write('# Automatically generated by tools/clang/scripts/update.py. ' +
|
| - 'Do not edit.\n')
|
| - f.write('# Since tools/clang is located in another directory, use the \n')
|
| - f.write('# two arg version to specify where build artifacts go. CMake\n')
|
| - f.write('# disallows reuse of the same binary dir for multiple source\n')
|
| - f.write('# dirs, so the build artifacts need to go into a subdirectory.\n')
|
| - f.write('add_subdirectory(${CHROMIUM_TOOLS_SRC} ' +
|
| - '${CMAKE_CURRENT_BINARY_DIR}/a)\n')
|
| -
|
| -
|
| def AddCMakeToPath():
|
| """Look for CMake and add it to PATH if it's not there already."""
|
| try:
|
| @@ -209,39 +181,30 @@
|
| return ''
|
|
|
|
|
| -def UpdateClang(args):
|
| +def UpdateClang():
|
| print 'Updating Clang to %s...' % (LLVM_WIN_REVISION)
|
| if LLVM_WIN_REVISION != 'HEAD' and ReadStampFile() == LLVM_WIN_REVISION:
|
| print 'Already up to date.'
|
| return 0
|
|
|
| AddCMakeToPath()
|
| - if args.clobber:
|
| - ClobberChromiumBuildFiles()
|
| + ClobberChromiumBuildFiles()
|
|
|
| # Reset the stamp file in case the build is unsuccessful.
|
| WriteStampFile('')
|
|
|
| - DeleteChromeToolsShim();
|
| Checkout('LLVM', LLVM_REPO_URL + '/llvm/trunk', LLVM_DIR)
|
| Checkout('Clang', LLVM_REPO_URL + '/cfe/trunk', CLANG_DIR)
|
| Checkout('LLD', LLVM_REPO_URL + '/lld/trunk', LLD_DIR)
|
| Checkout('compiler-rt', LLVM_REPO_URL + '/compiler-rt/trunk', COMPILER_RT_DIR)
|
| - CreateChromeToolsShim();
|
|
|
| if not os.path.exists(LLVM_BUILD_DIR):
|
| os.makedirs(LLVM_BUILD_DIR)
|
| os.chdir(LLVM_BUILD_DIR)
|
|
|
| - cmake_args = ['-GNinja', '-DCMAKE_BUILD_TYPE=Release',
|
| - '-DLLVM_ENABLE_ASSERTIONS=ON', SubversionCmakeArg(),
|
| - '-DCHROMIUM_TOOLS_SRC=%s' % os.path.join(
|
| - CHROMIUM_DIR, 'tools', 'clang')]
|
| - if args.tools:
|
| - cmake_args.append('-DCHROMIUM_TOOLS=%s' % ';'.join(args.tools))
|
| -
|
| RunCommand(GetVSVersion().SetupScript('x64') +
|
| - ['&&', 'cmake'] + cmake_args + [LLVM_DIR])
|
| + ['&&', 'cmake', '-GNinja', '-DCMAKE_BUILD_TYPE=Release',
|
| + '-DLLVM_ENABLE_ASSERTIONS=ON', SubversionCmakeArg(), LLVM_DIR])
|
| RunCommand(GetVSVersion().SetupScript('x64') + ['&&', 'ninja', 'all'])
|
|
|
| # Do an x86 build of compiler-rt to get the 32-bit ASan run-time.
|
| @@ -250,7 +213,8 @@
|
| os.makedirs(COMPILER_RT_BUILD_DIR)
|
| os.chdir(COMPILER_RT_BUILD_DIR)
|
| RunCommand(GetVSVersion().SetupScript('x86') +
|
| - ['&&', 'cmake'] + cmake_args + [LLVM_DIR])
|
| + ['&&', 'cmake', '-GNinja', '-DCMAKE_BUILD_TYPE=Release',
|
| + '-DLLVM_ENABLE_ASSERTIONS=ON', LLVM_DIR])
|
| RunCommand(GetVSVersion().SetupScript('x86') + ['&&', 'ninja', 'compiler-rt'])
|
|
|
| # TODO(hans): Make this (and the .gypi and .isolate files) version number
|
| @@ -312,10 +276,7 @@
|
| print 'Skipping Clang update (make_clang_dir= was set in GYP_DEFINES).'
|
| return 0
|
|
|
| - parser = argparse.ArgumentParser(description='Build Clang.')
|
| - parser.add_argument('--no-clobber', dest='clobber', action='store_false')
|
| - parser.add_argument('--tools', nargs='*')
|
| - return UpdateClang(parser.parse_args())
|
| + return UpdateClang()
|
|
|
|
|
| if __name__ == '__main__':
|
|
|