Index: build/win/copy_cdb_to_output.py |
diff --git a/build/win/copy_cdb_to_output.py b/build/win/copy_cdb_to_output.py |
deleted file mode 100755 |
index 33bcac71f6909f4dff1e0adbdc1e0fddbac277e9..0000000000000000000000000000000000000000 |
--- a/build/win/copy_cdb_to_output.py |
+++ /dev/null |
@@ -1,109 +0,0 @@ |
-#!/usr/bin/env python |
-# Copyright 2016 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-import glob |
-import hashlib |
-import os |
-import shutil |
-import sys |
- |
-script_dir = os.path.dirname(os.path.realpath(__file__)) |
-src_build_dir = os.path.abspath(os.path.join(script_dir, os.pardir)) |
-sys.path.insert(0, src_build_dir) |
- |
-import vs_toolchain |
- |
- |
-def _HexDigest(file_name): |
- hasher = hashlib.sha256() |
- afile = open(file_name, 'rb') |
- blocksize = 65536 |
- buf = afile.read(blocksize) |
- while len(buf) > 0: |
- hasher.update(buf) |
- buf = afile.read(blocksize) |
- afile.close() |
- return hasher.hexdigest() |
- |
- |
-def _CopyImpl(file_name, target_dir, source_dir, verbose=False): |
- """Copy |source| to |target| if it doesn't already exist or if it |
- needs to be updated. |
- """ |
- target = os.path.join(target_dir, file_name) |
- source = os.path.join(source_dir, file_name) |
- if (os.path.isdir(os.path.dirname(target)) and |
- ((not os.path.isfile(target)) or |
- _HexDigest(source) != _HexDigest(target))): |
- if verbose: |
- print 'Copying %s to %s...' % (source, target) |
- if os.path.exists(target): |
- os.unlink(target) |
- shutil.copy(source, target) |
- |
- |
-def _ConditionalMkdir(output_dir): |
- if not os.path.isdir(output_dir): |
- os.makedirs(output_dir) |
- |
- |
-def _CopyCDBToOutput(output_dir, target_arch): |
- """Copies the Windows debugging executable cdb.exe to the output |
- directory, which is created if it does not exist. The output |
- directory, and target architecture that should be copied, are |
- passed. Supported values for the target architecture are the GYP |
- values "ia32" and "x64" and the GN values "x86" and "x64". |
- """ |
- _ConditionalMkdir(output_dir) |
- vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs() |
- # If WINDOWSSDKDIR is not set use the default SDK path. This will be the case |
- # when DEPOT_TOOLS_WIN_TOOLCHAIN=0 and vcvarsall.bat has not been run. |
- win_sdk_dir = os.path.normpath( |
- os.environ.get('WINDOWSSDKDIR', |
- 'C:\\Program Files (x86)\\Windows Kits\\10')) |
- if target_arch == 'ia32' or target_arch == 'x86': |
- src_arch = 'x86' |
- elif target_arch == 'x64': |
- src_arch = 'x64' |
- else: |
- print 'copy_cdb_to_output.py: unknown target_arch %s' % target_arch |
- sys.exit(1) |
- # We need to copy multiple files, so cache the computed source directory. |
- src_dir = os.path.join(win_sdk_dir, 'Debuggers', src_arch) |
- # We need to copy some helper DLLs to get access to the !uniqstack |
- # command to dump all threads' stacks. |
- src_winext_dir = os.path.join(src_dir, 'winext') |
- dst_winext_dir = os.path.join(output_dir, 'winext') |
- src_winxp_dir = os.path.join(src_dir, 'winxp') |
- dst_winxp_dir = os.path.join(output_dir, 'winxp') |
- src_crt_dir = os.path.join(win_sdk_dir, r'Redist\ucrt\DLLs', src_arch) |
- _ConditionalMkdir(dst_winext_dir) |
- _ConditionalMkdir(dst_winxp_dir) |
- # Note that the outputs from the "copy_cdb_to_output" target need to |
- # be kept in sync with this list. |
- _CopyImpl('cdb.exe', output_dir, src_dir) |
- _CopyImpl('dbgeng.dll', output_dir, src_dir) |
- _CopyImpl('dbghelp.dll', output_dir, src_dir) |
- _CopyImpl('dbgmodel.dll', output_dir, src_dir) |
- _CopyImpl('ext.dll', dst_winext_dir, src_winext_dir) |
- _CopyImpl('uext.dll', dst_winext_dir, src_winext_dir) |
- _CopyImpl('exts.dll', dst_winxp_dir, src_winxp_dir) |
- _CopyImpl('ntsdexts.dll', dst_winxp_dir, src_winxp_dir) |
- for dll_path in glob.glob(os.path.join(src_crt_dir, 'api-ms-win-*.dll')): |
- _CopyImpl(os.path.split(dll_path)[1], output_dir, src_crt_dir) |
- _CopyImpl('ucrtbase.dll', output_dir, src_crt_dir) |
- return 0 |
- |
- |
-def main(): |
- if len(sys.argv) < 2: |
- print >>sys.stderr, 'Usage: copy_cdb_to_output.py <output_dir> ' + \ |
- '<target_arch>' |
- return 1 |
- return _CopyCDBToOutput(sys.argv[1], sys.argv[2]) |
- |
- |
-if __name__ == '__main__': |
- sys.exit(main()) |