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

Unified Diff: build/vs_toolchain.py

Issue 2653473002: Allow building Chrome with local VC++ 2017 install (Closed)
Patch Set: Rename _CopyRuntime2015 to _CopyUCRTRuntime Created 3 years, 11 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/toolchain/win/setup_toolchain.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/vs_toolchain.py
diff --git a/build/vs_toolchain.py b/build/vs_toolchain.py
index 3edf1fff67cb449014b592c04ca5a3d371ce9c38..aa56a79b8adc76dced28026663a5bf1610c34b67 100755
--- a/build/vs_toolchain.py
+++ b/build/vs_toolchain.py
@@ -135,20 +135,31 @@ def DetectVisualStudioPath():
year_to_version = {
'2013': '12.0',
'2015': '14.0',
+ '2017': '15.0',
}
if version_as_year not in year_to_version:
raise Exception(('Visual Studio version %s (from GYP_MSVS_VERSION)'
' not supported. Supported versions are: %s') % (
version_as_year, ', '.join(year_to_version.keys())))
version = year_to_version[version_as_year]
- keys = [r'HKLM\Software\Microsoft\VisualStudio\%s' % version,
- r'HKLM\Software\Wow6432Node\Microsoft\VisualStudio\%s' % version]
- for key in keys:
- path = _RegistryGetValue(key, 'InstallDir')
- if not path:
- continue
- path = os.path.normpath(os.path.join(path, '..', '..'))
- return path
+ if version_as_year == '2017':
+ # The VC++ 2017 install location needs to be located using COM instead of
+ # the registry. For details see:
+ # https://blogs.msdn.microsoft.com/heaths/2016/09/15/changes-to-visual-studio-15-setup/
+ # For now we use a hardcoded default with an environment variable override.
+ path = r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional'
+ path = os.environ.get('vs2017_install', path)
+ if os.path.exists(path):
+ return path
+ else:
+ keys = [r'HKLM\Software\Microsoft\VisualStudio\%s' % version,
+ r'HKLM\Software\Wow6432Node\Microsoft\VisualStudio\%s' % version]
+ for key in keys:
+ path = _RegistryGetValue(key, 'InstallDir')
+ if not path:
+ continue
+ path = os.path.normpath(os.path.join(path, '..', '..'))
+ return path
raise Exception(('Visual Studio Version %s (from GYP_MSVS_VERSION)'
' not found.') % (version_as_year))
@@ -162,6 +173,8 @@ def _VersionNumber():
return '120'
elif vs_version == '2015':
return '140'
+ elif vs_version == '2017':
+ return '150'
Sébastien Marchand 2017/05/10 21:23:49 Is it true? The files in 4e8a360587a3c8ff3fa46aa92
brucedawson 2017/05/10 21:32:32 I think VS 2017 uses 140, 141, and 150, depending
else:
raise ValueError('Unexpected GYP_MSVS_VERSION')
@@ -196,7 +209,7 @@ def _CopyRuntime2013(target_dir, source_dir, dll_pattern):
_CopyRuntimeImpl(target, source)
-def _CopyRuntime2015(target_dir, source_dir, dll_pattern, suffix):
+def _CopyUCRTRuntime(target_dir, source_dir, dll_pattern, suffix):
"""Copy both the msvcp and vccorlib runtime DLLs, only if the target doesn't
exist, but the target directory does exist."""
for file_part in ('msvcp', 'vccorlib', 'vcruntime'):
@@ -223,10 +236,11 @@ def _CopyRuntime2015(target_dir, source_dir, dll_pattern, suffix):
def _CopyRuntime(target_dir, source_dir, target_cpu, debug):
"""Copy the VS runtime DLLs, only if the target doesn't exist, but the target
- directory does exist. Handles VS 2013 and VS 2015."""
+ directory does exist. Handles VS 2013, VS 2015, and VS 2017."""
suffix = "d.dll" if debug else ".dll"
- if GetVisualStudioVersion() == '2015':
- _CopyRuntime2015(target_dir, source_dir, '%s140' + suffix, suffix)
+ if GetVisualStudioVersion() == '2015' or GetVisualStudioVersion() == '2017':
+ # VS 2017 RC uses the same CRT DLLs as VS 2015.
+ _CopyUCRTRuntime(target_dir, source_dir, '%s140' + suffix, suffix)
else:
_CopyRuntime2013(target_dir, source_dir, 'msvc%s120' + suffix)
« no previous file with comments | « build/toolchain/win/setup_toolchain.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698