Chromium Code Reviews| 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..de3f9bf60efa1f26c02513a4c1b381e06e46203b |
| --- 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 |
|
scottmg
2015/08/11 22:08:15
can you add more () here? `a and b or c` always co
Nico
2015/08/11 22:11:47
Done.
|
| + 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): |
|
scottmg
2015/08/11 22:08:15
what crazy person made `json_data_file` a global?
Nico
2015/08/11 22:11:47
Acknowledged.
scottmg
2015/08/11 22:15:56
Acknowledged.
|
| + 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')): |
|
scottmg
2015/08/11 22:08:15
i'm slightly nervous about this failing somewhere
|
| - return 0 |
| commands = { |
| 'update': Update, |
| 'get_toolchain_dir': GetToolchainDir, |