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__': |