Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1425)

Unified Diff: build/config/win/get_visual_studio_path.py

Issue 204663004: Use depot_tools toolchain, remove now unneeded code, fix not including path to win sdk tools (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update comment Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/config/win/get_msvc_config_real.py ('k') | build/config/win/visual_studio_version.gni » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/config/win/get_visual_studio_path.py
diff --git a/build/config/win/get_visual_studio_path.py b/build/config/win/get_visual_studio_path.py
deleted file mode 100644
index ae132adea4dfadcd1c8d7fe8dd3cf6ac1760878f..0000000000000000000000000000000000000000
--- a/build/config/win/get_visual_studio_path.py
+++ /dev/null
@@ -1,176 +0,0 @@
-# Copyright (c) 2013 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 errno
-import glob
-import os
-import re
-import subprocess
-import sys
-
-"""
-This script searches for Visual Studio versions on the current system.
-
-Pass in the preferred VS version on the command line, or pass "auto" for
-autodetect.
-
-This script prints a string containing the VS root directory. On failure it
-returns the empty string.
-"""
-
-def _ConvertToCygpath(path):
- """Convert to cygwin path if we are using cygwin."""
- if sys.platform == 'cygwin':
- p = subprocess.Popen(['cygpath', path], stdout=subprocess.PIPE)
- path = p.communicate()[0].strip()
- return path
-
-
-def _RegistryQueryBase(sysdir, key, value):
- """Use reg.exe to read a particular key.
-
- While ideally we might use the win32 module, we would like gyp to be
- python neutral, so for instance cygwin python lacks this module.
-
- Arguments:
- sysdir: The system subdirectory to attempt to launch reg.exe from.
- key: The registry key to read from.
- value: The particular value to read.
- Return:
- stdout from reg.exe, or None for failure.
- """
- # Setup params to pass to and attempt to launch reg.exe
- cmd = [os.path.join(os.environ.get('WINDIR', ''), sysdir, 'reg.exe'),
- 'query', key]
- if value:
- cmd.extend(['/v', value])
- p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- # Obtain the stdout from reg.exe, reading to the end so p.returncode is valid
- # Note that the error text may be in [1] in some cases
- text = p.communicate()[0]
- # Check return code from reg.exe; officially 0==success and 1==error
- if p.returncode:
- return None
- return text
-
-
-def _RegistryQuery(key, value=None):
- """Use reg.exe to read a particular key through _RegistryQueryBase.
-
- First tries to launch from %WinDir%\Sysnative to avoid WoW64 redirection. If
- that fails, it falls back to System32. Sysnative is available on Vista and
- up and available on Windows Server 2003 and XP through KB patch 942589. Note
- that Sysnative will always fail if using 64-bit python due to it being a
- virtual directory and System32 will work correctly in the first place.
-
- KB 942589 - http://support.microsoft.com/kb/942589/en-us.
-
- Arguments:
- key: The registry key.
- value: The particular registry value to read (optional).
- Return:
- stdout from reg.exe, or None for failure.
- """
- text = None
- try:
- text = _RegistryQueryBase('Sysnative', key, value)
- except OSError, e:
- if e.errno == errno.ENOENT:
- text = _RegistryQueryBase('System32', key, value)
- else:
- raise
- return text
-
-
-def _RegistryGetValue(key, value):
- """Use reg.exe to obtain the value of a registry key.
-
- Args:
- key: The registry key.
- value: The particular registry value to read.
- Return:
- contents of the registry key's value, or None on failure.
- """
- text = _RegistryQuery(key, value)
- if not text:
- return None
- # Extract value.
- match = re.search(r'REG_\w+\s+([^\r]+)\r\n', text)
- if not match:
- return None
- return match.group(1)
-
-
-def _DetectVisualStudioVersion(versions_to_check, force_express):
- """Gets the path of the preferred Visual Studio version.
-
- Returns:
- The base path of Visual Studio based on the registry and a quick check if
- devenv.exe exists.
-
- Possibilities are:
- 2010(e) - Visual Studio 2010 (10)
- 2012(e) - Visual Studio 2012 (11)
- 2013(e) - Visual Studio 2013 (12)
- Where (e) is e for express editions of MSVS and blank otherwise.
- """
- versions = []
- for version in versions_to_check:
- # Old method of searching for which VS version is installed
- # We don't use the 2010-encouraged-way because we also want to get the
- # path to the binaries, which it doesn't offer.
- keys = [r'HKLM\Software\Microsoft\VisualStudio\%s' % version,
- r'HKLM\Software\Wow6432Node\Microsoft\VisualStudio\%s' % version,
- r'HKLM\Software\Microsoft\VCExpress\%s' % version,
- r'HKLM\Software\Wow6432Node\Microsoft\VCExpress\%s' % version]
- for index in range(len(keys)):
- path = _RegistryGetValue(keys[index], 'InstallDir')
- if not path:
- continue
- path = _ConvertToCygpath(path)
- # Check for full.
- full_path = os.path.join(path, 'devenv.exe')
- express_path = os.path.join(path, '*express.exe')
- if not force_express and os.path.exists(full_path):
- return os.path.normpath(os.path.join(path, '..', '..'))
- # Check for express.
- elif glob.glob(express_path):
- return os.path.normpath(os.path.join(path, '..', '..'))
-
- # The old method above does not work when only SDK is installed.
- keys = [r'HKLM\Software\Microsoft\VisualStudio\SxS\VC7',
- r'HKLM\Software\Wow6432Node\Microsoft\VisualStudio\SxS\VC7']
- for index in range(len(keys)):
- path = _RegistryGetValue(keys[index], version)
- if not path:
- continue
- path = _ConvertToCygpath(path)
- return os.path.normpath(os.path.join(path, '..'))
-
- return None
-
-if len(sys.argv) != 2:
- print 'Usage: get_visual_studio_path.py <version>'
- print 'Use "auto" for the version to autodetect.'
- sys.exit(2)
-version_map = {
- 'auto': ('10.0', '12.0', '11.0'),
- '2010': ('10.0',),
- '2010e': ('10.0',),
- '2012': ('11.0',),
- '2012e': ('11.0',),
- '2013': ('12.0',),
- '2013e': ('12.0',),
-}
-
-requested_version = sys.argv[1]
-vs_path = _DetectVisualStudioVersion(version_map[requested_version],
- 'e' in requested_version)
-if not vs_path:
- # No Visual Studio version detected.
- print '""' # Return empty string to .gn file.
- sys.exit(1);
-
-# Return Visual Studio path to the .gn file.
-print '"%s"' % vs_path
« no previous file with comments | « build/config/win/get_msvc_config_real.py ('k') | build/config/win/visual_studio_version.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698