OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2017 The Dart project authors. All rights reserved. | 2 # Copyright 2017 The Dart project 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 """Pulls down tools required to build Dart.""" | 6 """Pulls down tools required to build Dart.""" |
7 | 7 |
8 import os | 8 import os |
9 import subprocess | 9 import subprocess |
10 import shutil | 10 import shutil |
11 import sys | 11 import sys |
12 | 12 |
13 THIS_DIR = os.path.abspath(os.path.dirname(__file__)) | 13 THIS_DIR = os.path.abspath(os.path.dirname(__file__)) |
14 DART_ROOT = os.path.abspath(os.path.join(THIS_DIR, '..', '..')) | 14 DART_ROOT = os.path.abspath(os.path.join(THIS_DIR, '..', '..')) |
15 BUILDTOOLS = os.path.join(DART_ROOT, 'buildtools') | 15 BUILDTOOLS = os.path.join(DART_ROOT, 'buildtools') |
16 TOOLS_BUILDTOOLS = os.path.join(DART_ROOT, 'tools', 'buildtools') | 16 TOOLS_BUILDTOOLS = os.path.join(DART_ROOT, 'tools', 'buildtools') |
17 TOOLCHAIN = os.path.join(BUILDTOOLS, 'toolchain') | |
18 | 17 |
19 sys.path.insert(0, os.path.join(DART_ROOT, 'tools')) | 18 sys.path.insert(0, os.path.join(DART_ROOT, 'tools')) |
20 import find_depot_tools | 19 import find_depot_tools |
21 | 20 |
22 DEPOT_PATH = find_depot_tools.add_depot_tools_to_path() | 21 DEPOT_PATH = find_depot_tools.add_depot_tools_to_path() |
23 | 22 |
24 | 23 |
25 def Update(): | 24 def Update(): |
26 path = os.path.join(BUILDTOOLS, 'update.sh') | 25 path = os.path.join(BUILDTOOLS, 'update.sh') |
27 command = ['/bin/bash', path, '--toolchain', '--gn'] | 26 command = ['/bin/bash', path, '--clang', '--gn'] |
28 return subprocess.call(command, cwd=DART_ROOT) | 27 return subprocess.call(command, cwd=DART_ROOT) |
29 | 28 |
30 | 29 |
31 def UpdateGNOnWindows(): | 30 def UpdateGNOnWindows(): |
32 sha1_file = os.path.join(BUILDTOOLS, 'win', 'gn.exe.sha1') | 31 sha1_file = os.path.join(BUILDTOOLS, 'win', 'gn.exe.sha1') |
33 downloader_script = os.path.join( | 32 downloader_script = os.path.join( |
34 DEPOT_PATH, 'download_from_google_storage.py') | 33 DEPOT_PATH, 'download_from_google_storage.py') |
35 download_cmd = [ | 34 download_cmd = [ |
36 'python', | 35 'python', |
37 downloader_script, | 36 downloader_script, |
(...skipping 29 matching lines...) Expand all Loading... |
67 output_dir | 66 output_dir |
68 ] | 67 ] |
69 return subprocess.call(download_cmd) | 68 return subprocess.call(download_cmd) |
70 | 69 |
71 | 70 |
72 # On Mac and Linux we copy clang-format to the place where git cl format | 71 # On Mac and Linux we copy clang-format to the place where git cl format |
73 # expects it to be. | 72 # expects it to be. |
74 def CopyClangFormat(): | 73 def CopyClangFormat(): |
75 if sys.platform == 'darwin': | 74 if sys.platform == 'darwin': |
76 platform = 'darwin' | 75 platform = 'darwin' |
77 subdir = 'mac' | 76 tools = 'mac' |
| 77 toolchain = 'mac-x64' |
78 elif sys.platform.startswith('linux'): | 78 elif sys.platform.startswith('linux'): |
79 platform = 'linux' | 79 platform = 'linux' |
80 subdir = 'linux64' | 80 tools = 'linux64' |
| 81 toolchain = 'linux-x64' |
81 else: | 82 else: |
82 print 'Unknown platform: ' + sys.platform | 83 print 'Unknown platform: ' + sys.platform |
83 return 1 | 84 return 1 |
84 | 85 |
85 clang_format = os.path.join( | 86 clang_format = os.path.join( |
86 TOOLCHAIN, 'clang+llvm-x86_64-' + platform, 'bin', 'clang-format') | 87 BUILDTOOLS, toolchain, 'clang', 'bin', 'clang-format') |
87 dest = os.path.join(BUILDTOOLS, subdir, 'clang-format') | 88 dest = os.path.join(BUILDTOOLS, tools, 'clang-format') |
88 shutil.copy2(clang_format, dest) | 89 shutil.copy2(clang_format, dest) |
89 return 0 | 90 return 0 |
90 | 91 |
91 | 92 |
92 def main(argv): | 93 def main(argv): |
93 if sys.platform.startswith('win'): | 94 if sys.platform.startswith('win'): |
94 result = UpdateGNOnWindows() | 95 result = UpdateGNOnWindows() |
95 if result != 0: | 96 if result != 0: |
96 return result | 97 return result |
97 return UpdateClangFormatOnWindows() | 98 return UpdateClangFormatOnWindows() |
98 if Update() != 0: | 99 if Update() != 0: |
99 return 1 | 100 return 1 |
100 return CopyClangFormat() | 101 return CopyClangFormat() |
101 | 102 |
102 | 103 |
103 if __name__ == '__main__': | 104 if __name__ == '__main__': |
104 sys.exit(main(sys.argv)) | 105 sys.exit(main(sys.argv)) |
OLD | NEW |