Auto merge of #25365 - MeFisto94:autolaunch-vcvars, r=jdm

Launch vcvarsall.bat for the recognized VS Installation Directory from python instead of making mach.bat try that on hardcoded paths.

Move the Execution of vcvars (which sets up the environment for visual studio tools) from mach.bat to python, so that ./mach works under mozilla-build and that #25300 can be used.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #25360 #25336
- [X] These changes do not require tests because changes to build infra
This commit is contained in:
bors-servo 2020-03-23 20:55:25 -04:00 committed by GitHub
commit d1c76edecf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 57 deletions

View file

@ -10,6 +10,7 @@
from __future__ import print_function, unicode_literals
import datetime
import locale
import os
import os.path as path
import platform
@ -310,6 +311,16 @@ class MachCommands(CommandBase):
"lib", "pkgconfig"
)
if 'windows' in host:
process = subprocess.Popen('("%s" %s > nul) && "python" -c "import os; print(repr(os.environ))"' %
(os.path.join(vs_dirs['vcdir'], "Auxiliary", "Build", "vcvarsall.bat"), "x64"),
stdout=subprocess.PIPE, shell=True)
stdout, _ = process.communicate()
exitcode = process.wait()
encoding = locale.getpreferredencoding() # See https://stackoverflow.com/a/9228117
if exitcode == 0:
os.environ.update(eval(stdout.decode(encoding)))
# Ensure that GStreamer libraries are accessible when linking.
if 'windows' in target_triple:
gst_root = gstreamer_root(target_triple, env)