skia2/gn/find_msvc.py
Martin Vejdarski c56950442d fall back to vswhere.exe to find msvc
Change-Id: I5cba7406522479c05dc5148357eed31d105a31fd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/275876
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-03-08 23:57:16 +00:00

39 lines
1.3 KiB
Python
Executable File

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