Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: build/vs_toolchain.py

Issue 1890053004: Stop gyp_chromium prior to mass DLL copies on error (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove unecessary copies Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/gyp_chromium.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 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 import glob 6 import glob
7 import json 7 import json
8 import os 8 import os
9 import pipes 9 import pipes
10 import shutil 10 import shutil
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 vs_version = GetVisualStudioVersion() 146 vs_version = GetVisualStudioVersion()
147 if vs_version == '2013': 147 if vs_version == '2013':
148 return '120' 148 return '120'
149 elif vs_version == '2015': 149 elif vs_version == '2015':
150 return '140' 150 return '140'
151 else: 151 else:
152 raise ValueError('Unexpected GYP_MSVS_VERSION') 152 raise ValueError('Unexpected GYP_MSVS_VERSION')
153 153
154 154
155 def _CopyRuntimeImpl(target, source, verbose=True): 155 def _CopyRuntimeImpl(target, source, verbose=True):
156 """Copy |source| to |target| if it doesn't already exist or if it 156 """Copy |source| to |target| if it doesn't already exist or if it needs to be
157 needs to be updated. 157 updated (comparing last modified time as an approximate float match as for
158 some reason the values tend to differ by ~1e-07 despite being copies of the
159 same file... https://crbug.com/603603).
158 """ 160 """
159 if (os.path.isdir(os.path.dirname(target)) and 161 if (os.path.isdir(os.path.dirname(target)) and
160 (not os.path.isfile(target) or 162 (not os.path.isfile(target) or
161 os.stat(target).st_mtime != os.stat(source).st_mtime)): 163 abs(os.stat(target).st_mtime - os.stat(source).st_mtime) >= 0.01)):
scottmg 2016/04/18 16:48:39 Gah! Why the heck is mtime a float anyway :/
gab 2016/04/18 16:58:51 I know, right..! Casting to int() and doing strict
brucedawson 2016/04/18 18:25:17 WTF? There's something weird going on. When I run:
162 if verbose: 164 if verbose:
163 print 'Copying %s to %s...' % (source, target) 165 print 'Copying %s to %s...' % (source, target)
164 if os.path.exists(target): 166 if os.path.exists(target):
165 os.unlink(target) 167 os.unlink(target)
166 shutil.copy2(source, target) 168 shutil.copy2(source, target)
167 169
168 170
169 def _CopyRuntime2013(target_dir, source_dir, dll_pattern): 171 def _CopyRuntime2013(target_dir, source_dir, dll_pattern):
170 """Copy both the msvcr and msvcp runtime DLLs, only if the target doesn't 172 """Copy both the msvcr and msvcp runtime DLLs, only if the target doesn't
171 exist, but the target directory does exist.""" 173 exist, but the target directory does exist."""
172 for file_part in ('p', 'r'): 174 for file_part in ('p', 'r'):
173 dll = dll_pattern % file_part 175 dll = dll_pattern % file_part
174 target = os.path.join(target_dir, dll) 176 target = os.path.join(target_dir, dll)
175 source = os.path.join(source_dir, dll) 177 source = os.path.join(source_dir, dll)
176 _CopyRuntimeImpl(target, source) 178 _CopyRuntimeImpl(target, source)
177 179
178 180
179 def _CopyRuntime2015(target_dir, source_dir, dll_pattern, suffix): 181 def _CopyRuntime2015(target_dir, source_dir, dll_pattern, suffix):
180 """Copy both the msvcp and vccorlib runtime DLLs, only if the target doesn't 182 """Copy both the msvcp and vccorlib runtime DLLs, only if the target doesn't
181 exist, but the target directory does exist.""" 183 exist, but the target directory does exist."""
182 for file_part in ('msvcp', 'vccorlib', 'vcruntime'): 184 for file_part in ('msvcp', 'vccorlib', 'vcruntime'):
183 dll = dll_pattern % file_part 185 dll = dll_pattern % file_part
184 target = os.path.join(target_dir, dll) 186 target = os.path.join(target_dir, dll)
185 source = os.path.join(source_dir, dll) 187 source = os.path.join(source_dir, dll)
186 _CopyRuntimeImpl(target, source) 188 _CopyRuntimeImpl(target, source)
187 ucrt_src_dir = os.path.join(source_dir, 'api-ms-win-*.dll') 189 ucrt_src_dir = os.path.join(source_dir, 'api-ms-win-*.dll')
188 print 'Copying %s to %s...' % (ucrt_src_dir, target_dir)
189 for ucrt_src_file in glob.glob(ucrt_src_dir): 190 for ucrt_src_file in glob.glob(ucrt_src_dir):
190 file_part = os.path.basename(ucrt_src_file) 191 file_part = os.path.basename(ucrt_src_file)
191 ucrt_dst_file = os.path.join(target_dir, file_part) 192 ucrt_dst_file = os.path.join(target_dir, file_part)
192 _CopyRuntimeImpl(ucrt_dst_file, ucrt_src_file, False) 193 _CopyRuntimeImpl(ucrt_dst_file, ucrt_src_file, False)
193 _CopyRuntimeImpl(os.path.join(target_dir, 'ucrtbase' + suffix), 194 _CopyRuntimeImpl(os.path.join(target_dir, 'ucrtbase' + suffix),
194 os.path.join(source_dir, 'ucrtbase' + suffix)) 195 os.path.join(source_dir, 'ucrtbase' + suffix))
195 196
196 197
197 def _CopyRuntime(target_dir, source_dir, target_cpu, debug): 198 def _CopyRuntime(target_dir, source_dir, target_cpu, debug):
198 """Copy the VS runtime DLLs, only if the target doesn't exist, but the target 199 """Copy the VS runtime DLLs, only if the target doesn't exist, but the target
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 'copy_dlls': CopyDlls, 369 'copy_dlls': CopyDlls,
369 } 370 }
370 if len(sys.argv) < 2 or sys.argv[1] not in commands: 371 if len(sys.argv) < 2 or sys.argv[1] not in commands:
371 print >>sys.stderr, 'Expected one of: %s' % ', '.join(commands) 372 print >>sys.stderr, 'Expected one of: %s' % ', '.join(commands)
372 return 1 373 return 1
373 return commands[sys.argv[1]](*sys.argv[2:]) 374 return commands[sys.argv[1]](*sys.argv[2:])
374 375
375 376
376 if __name__ == '__main__': 377 if __name__ == '__main__':
377 sys.exit(main()) 378 sys.exit(main())
OLDNEW
« no previous file with comments | « build/gyp_chromium.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698