1#!/usr/bin/env python 2# Copyright 2019 Google Inc. 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6import os 7import sys 8import subprocess 9 10''' 11Look for the first match in the format 12 C:\\Program Files (x86)\\Microsoft Visual Studio\\${RELEASE}\\${VERSION}\\VC 13''' 14def find_msvc(): 15 if sys.platform.startswith('win'): 16 default_dir = r'C:\Program Files (x86)\Microsoft Visual Studio' 17 for release in ['2019', '2017']: 18 for version in ['Enterprise', 'Professional', 'Community', 'BuildTools', 'Preview']: 19 path = os.path.join(default_dir, release, version, 'VC') 20 if os.path.isdir(path): 21 return path 22 23 # Fall back to vswhere.exe to determine non-standard installation paths 24 # Fixed location, https://github.com/Microsoft/vswhere/wiki/Installing 25 vswhere = os.path.join(os.getenv('ProgramFiles(x86)'), 26 'Microsoft Visual Studio', 'Installer', 'vswhere.exe') 27 command = (vswhere + ' -prerelease -legacy -products * -sort -utf8 ' 28 '-property installationPath') 29 paths = subprocess.check_output(command).decode('utf-8').splitlines() 30 if paths: 31 return paths[0] + '\\VC' 32 33 return None 34 35if __name__ == '__main__': 36 result = find_msvc() 37 if result: 38 sys.stdout.write(result + '\n') 39