You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.3 KiB
39 lines
1.3 KiB
#!/usr/bin/env python
|
|
# Copyright 2019 Google Inc.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
|
|
'''
|
|
Look for the first match in the format
|
|
C:\\Program Files (x86)\\Microsoft Visual Studio\\${RELEASE}\\${VERSION}\\VC
|
|
'''
|
|
def find_msvc():
|
|
if sys.platform.startswith('win'):
|
|
default_dir = r'C:\Program Files (x86)\Microsoft Visual Studio'
|
|
for release in ['2019', '2017']:
|
|
for version in ['Enterprise', 'Professional', 'Community', 'BuildTools', 'Preview']:
|
|
path = os.path.join(default_dir, release, version, 'VC')
|
|
if os.path.isdir(path):
|
|
return path
|
|
|
|
# Fall back to vswhere.exe to determine non-standard installation paths
|
|
# Fixed location, https://github.com/Microsoft/vswhere/wiki/Installing
|
|
vswhere = os.path.join(os.getenv('ProgramFiles(x86)'),
|
|
'Microsoft Visual Studio', 'Installer', 'vswhere.exe')
|
|
command = (vswhere + ' -prerelease -legacy -products * -sort -utf8 '
|
|
'-property installationPath')
|
|
paths = subprocess.check_output(command).decode('utf-8').splitlines()
|
|
if paths:
|
|
return paths[0] + '\\VC'
|
|
|
|
return None
|
|
|
|
if __name__ == '__main__':
|
|
result = find_msvc()
|
|
if result:
|
|
sys.stdout.write(result + '\n')
|