| Index: build/vs_toolchain.py
|
| diff --git a/build/vs_toolchain.py b/build/vs_toolchain.py
|
| index 558ad3abeabe7bf3c1a7235c56a90cb27709a766..aa4fec2d1282f6b10aec944417b2d4139e62759d 100644
|
| --- a/build/vs_toolchain.py
|
| +++ b/build/vs_toolchain.py
|
| @@ -71,6 +71,18 @@ def CopyVsRuntimeDlls(output_dir, runtime_dirs):
|
| """
|
| assert sys.platform.startswith(('win32', 'cygwin'))
|
|
|
| + def copy_runtime_impl(target, source):
|
| + """Copy |source| to |target| if it doesn't already exist or if it need to be
|
| + updated.
|
| + """
|
| + if (os.path.isdir(os.path.dirname(target)) and
|
| + (not os.path.isfile(target) or
|
| + os.stat(target).st_mtime != os.stat(source).st_mtime)):
|
| + print 'Copying %s to %s...' % (source, target)
|
| + if os.path.exists(target):
|
| + os.unlink(target)
|
| + shutil.copy2(source, target)
|
| +
|
| def copy_runtime(target_dir, source_dir, dll_pattern):
|
| """Copy both the msvcr and msvcp runtime DLLs, only if the target doesn't
|
| exist, but the target directory does exist."""
|
| @@ -78,15 +90,7 @@ def CopyVsRuntimeDlls(output_dir, runtime_dirs):
|
| dll = dll_pattern % which
|
| target = os.path.join(target_dir, dll)
|
| source = os.path.join(source_dir, dll)
|
| - # If gyp generated to that output dir, and the runtime isn't already
|
| - # there, then copy it over.
|
| - if (os.path.isdir(target_dir) and
|
| - (not os.path.isfile(target) or
|
| - os.stat(target).st_mtime != os.stat(source).st_mtime)):
|
| - print 'Copying %s to %s...' % (source, target)
|
| - if os.path.exists(target):
|
| - os.unlink(target)
|
| - shutil.copy2(source, target)
|
| + copy_runtime_impl(target, source)
|
|
|
| x86, x64 = runtime_dirs
|
| out_debug = os.path.join(output_dir, 'Debug')
|
| @@ -107,6 +111,20 @@ def CopyVsRuntimeDlls(output_dir, runtime_dirs):
|
| copy_runtime(out_debug_nacl64, x64, 'msvc%s120d.dll')
|
| copy_runtime(out_release_nacl64, x64, 'msvc%s120.dll')
|
|
|
| + # Copy the PGO runtime library to the release directories.
|
| + if os.environ.get('GYP_MSVS_OVERRIDE_PATH'):
|
| + pgo_x86_runtime_dir = os.path.join(os.environ.get('GYP_MSVS_OVERRIDE_PATH'),
|
| + 'VC', 'bin')
|
| + pgo_x64_runtime_dir = os.path.join(pgo_x86_runtime_dir, 'amd64')
|
| + pgo_runtime_dll = 'pgort120.dll'
|
| + source_x86 = os.path.join(pgo_x86_runtime_dir, pgo_runtime_dll)
|
| + if os.path.exists(source_x86):
|
| + copy_runtime_impl(os.path.join(out_release, pgo_runtime_dll), source_x86)
|
| + source_x64 = os.path.join(pgo_x64_runtime_dir, pgo_runtime_dll)
|
| + if os.path.exists(source_x64):
|
| + copy_runtime_impl(os.path.join(out_release_x64, pgo_runtime_dll),
|
| + source_x64)
|
| +
|
|
|
| def _GetDesiredVsToolchainHashes():
|
| """Load a list of SHA1s corresponding to the toolchains that we want installed
|
|
|