aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo/build_commands.py
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2020-03-23 20:55:25 -0400
committerGitHub <noreply@github.com>2020-03-23 20:55:25 -0400
commitd1c76edecf03905ef61646822a42f6164cd27185 (patch)
tree810c451ef21838cf145d2dceed78734b26a20763 /python/servo/build_commands.py
parentfcb99ae017cee5dfb8ae4e202b01ab46e16b421b (diff)
parent215177d791ab2f4ca5fbd633e904475d16d91386 (diff)
downloadservo-d1c76edecf03905ef61646822a42f6164cd27185.tar.gz
servo-d1c76edecf03905ef61646822a42f6164cd27185.zip
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
Diffstat (limited to 'python/servo/build_commands.py')
-rw-r--r--python/servo/build_commands.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py
index 6567136c515..76082522de8 100644
--- a/python/servo/build_commands.py
+++ b/python/servo/build_commands.py
@@ -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)