From 731d39d783ac434d37aef98daaed17b27c60129d Mon Sep 17 00:00:00 2001 From: Mat Sutcliffe Date: Wed, 13 Feb 2019 17:53:22 +0000 Subject: [PATCH] [Jenkins] Use vswhere to locate vcvarsall script. --- scripts/lib/util.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/scripts/lib/util.py b/scripts/lib/util.py index b79324f0e..31b37b833 100644 --- a/scripts/lib/util.py +++ b/scripts/lib/util.py @@ -5,6 +5,7 @@ from __future__ import print_function import itertools import subprocess import sys +import os def validate_pair(ob): @@ -67,5 +68,12 @@ def get_vs_env(arch): The arch has to be one of "x86", "amd64", "arm", "x86_amd64", "x86_arm", "amd64_x86", "amd64_arm", i.e. the args passed to vcvarsall.bat. """ - vsvarsall = "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\Auxiliary\\Build\\vcvarsall.bat" + + # https://github.com/Microsoft/vswhere/wiki + component = 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64' + vswhere = os.environ['ProgramFiles(x86)'] + "\\Microsoft Visual Studio\\Installer\\vswhere.exe" + vswhereCmd = [vswhere, '-latest', '-products', '*', '-requires', component, '-property', 'installationPath'] + vspath = subprocess.check_output(vswhereCmd).decode("utf-8").strip() + + vsvarsall = vspath + "\\VC\\Auxiliary\\Build\\vcvarsall.bat" return get_environment_from_batch_command([vsvarsall, arch])