1# Copyright (c) 2015, Google Inc. 2# 3# Permission to use, copy, modify, and/or distribute this software for any 4# purpose with or without fee is hereby granted, provided that the above 5# copyright notice and this permission notice appear in all copies. 6# 7# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 10# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 12# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 13# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 14 15import subprocess 16import sys 17 18import vs_toolchain 19# vs_toolchain adds gyp to sys.path. 20import gyp.MSVSVersion 21 22if len(sys.argv) < 2: 23 print >>sys.stderr, "Usage: vs_env.py TARGET_ARCH CMD..." 24 sys.exit(1) 25 26target_arch = sys.argv[1] 27cmd = sys.argv[2:] 28 29vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs() 30vs_version = gyp.MSVSVersion.SelectVisualStudioVersion() 31 32# Using shell=True is somewhat ugly, but the alternative is to pull in a copy 33# of the Chromium GN build's setup_toolchain.py which runs the setup script, 34# then 'set', and then parses the environment variables out. (GYP internally 35# does the same thing.) 36sys.exit(subprocess.call(vs_version.SetupScript(target_arch) + ["&&"] + cmd, 37 shell=True)) 38