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

Side by Side Diff: build/vs_toolchain.py

Issue 2754263002: Retrieve Visual Studio 2017 installation location from registry (Closed)
Patch Set: Created 3 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import glob 6 import glob
7 import json 7 import json
8 import os 8 import os
9 import pipes 9 import pipes
10 import platform 10 import platform
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 year_to_version = { 139 year_to_version = {
140 '2013': '12.0', 140 '2013': '12.0',
141 '2015': '14.0', 141 '2015': '14.0',
142 '2017': '15.0', 142 '2017': '15.0',
143 } 143 }
144 if version_as_year not in year_to_version: 144 if version_as_year not in year_to_version:
145 raise Exception(('Visual Studio version %s (from GYP_MSVS_VERSION)' 145 raise Exception(('Visual Studio version %s (from GYP_MSVS_VERSION)'
146 ' not supported. Supported versions are: %s') % ( 146 ' not supported. Supported versions are: %s') % (
147 version_as_year, ', '.join(year_to_version.keys()))) 147 version_as_year, ', '.join(year_to_version.keys())))
148 version = year_to_version[version_as_year] 148 version = year_to_version[version_as_year]
149 if version_as_year == '2017': 149 keys = [r'HKLM\Software\Microsoft\VisualStudio\SxS\VS7',
150 # The VC++ 2017 install location needs to be located using COM instead of 150 r'HKLM\Software\Wow6432Node\Microsoft\VisualStudio\SxS\VS7']
151 # the registry. For details see: 151 for key in keys:
152 # https://blogs.msdn.microsoft.com/heaths/2016/09/15/changes-to-visual-studi o-15-setup/ 152 path = _RegistryGetValue(key, version)
153 # For now we use a hardcoded default with an environment variable override. 153 if not path:
154 path = r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional' 154 continue
155 path = os.environ.get('vs2017_install', path) 155 path = os.path.normpath(path)
156 if os.path.exists(path): 156 return path
157 return path
158 else:
159 keys = [r'HKLM\Software\Microsoft\VisualStudio\%s' % version,
160 r'HKLM\Software\Wow6432Node\Microsoft\VisualStudio\%s' % version]
161 for key in keys:
162 path = _RegistryGetValue(key, 'InstallDir')
163 if not path:
164 continue
165 path = os.path.normpath(os.path.join(path, '..', '..'))
166 return path
167 157
168 raise Exception(('Visual Studio Version %s (from GYP_MSVS_VERSION)' 158 raise Exception(('Visual Studio Version %s (from GYP_MSVS_VERSION)'
169 ' not found.') % (version_as_year)) 159 ' not found.') % (version_as_year))
170 160
171 161
172 def _VersionNumber(): 162 def _VersionNumber():
173 """Gets the standard version number ('120', '140', etc.) based on 163 """Gets the standard version number ('120', '140', etc.) based on
174 GYP_MSVS_VERSION.""" 164 GYP_MSVS_VERSION."""
175 vs_version = GetVisualStudioVersion() 165 vs_version = GetVisualStudioVersion()
176 if vs_version == '2013': 166 if vs_version == '2013':
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 'copy_dlls': CopyDlls, 438 'copy_dlls': CopyDlls,
449 } 439 }
450 if len(sys.argv) < 2 or sys.argv[1] not in commands: 440 if len(sys.argv) < 2 or sys.argv[1] not in commands:
451 print >>sys.stderr, 'Expected one of: %s' % ', '.join(commands) 441 print >>sys.stderr, 'Expected one of: %s' % ', '.join(commands)
452 return 1 442 return 1
453 return commands[sys.argv[1]](*sys.argv[2:]) 443 return commands[sys.argv[1]](*sys.argv[2:])
454 444
455 445
456 if __name__ == '__main__': 446 if __name__ == '__main__':
457 sys.exit(main()) 447 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698