| Index: build/vs_toolchain.py
|
| diff --git a/build/vs_toolchain.py b/build/vs_toolchain.py
|
| old mode 100644
|
| new mode 100755
|
| index 25131659f795588f3156c48b0150890aad2f9c48..cea0d6d0e32f518f73388f000b1e1cf6c6c4b233
|
| --- a/build/vs_toolchain.py
|
| +++ b/build/vs_toolchain.py
|
| @@ -1,3 +1,4 @@
|
| +#!/usr/bin/env python
|
| # Copyright 2014 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.
|
| @@ -29,7 +30,10 @@ def SetEnvironmentAndGetRuntimeDllDirs():
|
| vs2013_runtime_dll_dirs = None
|
| depot_tools_win_toolchain = \
|
| bool(int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN', '1')))
|
| - if sys.platform in ('win32', 'cygwin') and depot_tools_win_toolchain:
|
| + # When running on a non-Windows host, only do this if the SDK has explicitly
|
| + # been downloaded before (in which case json_data_file will exist).
|
| + if ((sys.platform in ('win32', 'cygwin') and depot_tools_win_toolchain) or
|
| + os.path.exists(json_data_file)):
|
| if not os.path.exists(json_data_file):
|
| Update()
|
| with open(json_data_file, 'r') as tempf:
|
| @@ -116,8 +120,6 @@ def CopyVsRuntimeDlls(output_dir, runtime_dirs):
|
| This needs to be run after gyp has been run so that the expected target
|
| output directories are already created.
|
| """
|
| - assert sys.platform.startswith(('win32', 'cygwin'))
|
| -
|
| x86, x64 = runtime_dirs
|
| out_debug = os.path.join(output_dir, 'Debug')
|
| out_debug_nacl64 = os.path.join(output_dir, 'Debug', 'x64')
|
| @@ -193,14 +195,21 @@ def _GetDesiredVsToolchainHashes():
|
| return ['ee7d718ec60c2dc5d255bbe325909c2021a7efef']
|
|
|
|
|
| -def Update():
|
| +def Update(force=False):
|
| """Requests an update of the toolchain to the specific hashes we have at
|
| this revision. The update outputs a .json of the various configuration
|
| information required to pass to gyp which we use in |GetToolchainDir()|.
|
| """
|
| + if force != False and force != '--force':
|
| + print >>sys.stderr, 'Unknown parameter "%s"' % force
|
| + return 1
|
| + if force == '--force' or os.path.exists(json_data_file):
|
| + force = True
|
| +
|
| depot_tools_win_toolchain = \
|
| bool(int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN', '1')))
|
| - if sys.platform in ('win32', 'cygwin') and depot_tools_win_toolchain:
|
| + if ((sys.platform in ('win32', 'cygwin') or force) and
|
| + depot_tools_win_toolchain):
|
| import find_depot_tools
|
| depot_tools_path = find_depot_tools.add_depot_tools_to_path()
|
| get_toolchain_args = [
|
| @@ -210,6 +219,8 @@ def Update():
|
| 'get_toolchain_if_necessary.py'),
|
| '--output-json', json_data_file,
|
| ] + _GetDesiredVsToolchainHashes()
|
| + if force:
|
| + get_toolchain_args.append('--force')
|
| subprocess.check_call(get_toolchain_args)
|
|
|
| return 0
|
| @@ -240,8 +251,6 @@ runtime_dirs = "%s"
|
|
|
|
|
| def main():
|
| - if not sys.platform.startswith(('win32', 'cygwin')):
|
| - return 0
|
| commands = {
|
| 'update': Update,
|
| 'get_toolchain_dir': GetToolchainDir,
|
|
|