OLD | NEW |
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 Loading... |
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 Loading... |
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()) |
OLD | NEW |