| 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())
|
|
|