#!/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')