mirror of
https://github.com/servo/servo.git
synced 2025-07-02 21:13:39 +01:00
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:
commit
d1c76edecf
2 changed files with 11 additions and 57 deletions
57
mach.bat
57
mach.bat
|
@ -1,65 +1,8 @@
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
if EXIST "%VCINSTALLDIR%" (
|
|
||||||
GOTO mach
|
|
||||||
)
|
|
||||||
|
|
||||||
pushd .
|
|
||||||
|
|
||||||
IF EXIST "%ProgramFiles(x86)%" (
|
|
||||||
set "ProgramFiles32=%ProgramFiles(x86)%"
|
|
||||||
) ELSE (
|
|
||||||
set "ProgramFiles32=%ProgramFiles%"
|
|
||||||
)
|
|
||||||
|
|
||||||
for %%v in (2019 2017) do (
|
|
||||||
for %%e in (Enterprise Professional Community BuildTools) do (
|
|
||||||
IF EXIST "%ProgramFiles32%\Microsoft Visual Studio\%%v\%%e\VC\Auxiliary\Build\vcvarsall.bat" (
|
|
||||||
set "VS_VCVARS=%ProgramFiles32%\Microsoft Visual Studio\%%v\%%e\VC\Auxiliary\Build\vcvarsall.bat"
|
|
||||||
GOTO vcvars
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
set VC14VARS=%VS140COMNTOOLS%..\..\VC\vcvarsall.bat
|
|
||||||
IF EXIST "%VC14VARS%" (
|
|
||||||
set "VS_VCVARS=%VC14VARS%"
|
|
||||||
)
|
|
||||||
|
|
||||||
:vcvars
|
|
||||||
IF EXIST "%VS_VCVARS%" (
|
|
||||||
IF NOT DEFINED Platform (
|
|
||||||
IF EXIST "%ProgramFiles(x86)%" (
|
|
||||||
call "%VS_VCVARS%" x64
|
|
||||||
) ELSE (
|
|
||||||
ECHO 32-bit Windows is currently unsupported.
|
|
||||||
GOTO bad_exit
|
|
||||||
)
|
|
||||||
)
|
|
||||||
) ELSE (
|
|
||||||
ECHO Visual Studio 2015, 2017, or 2019 is not installed.
|
|
||||||
ECHO Download and install Visual Studio from https://www.visualstudio.com/
|
|
||||||
GOTO bad_exit
|
|
||||||
)
|
|
||||||
|
|
||||||
popd
|
|
||||||
|
|
||||||
:mach
|
|
||||||
where /Q py.exe
|
where /Q py.exe
|
||||||
IF %ERRORLEVEL% NEQ 0 (
|
IF %ERRORLEVEL% NEQ 0 (
|
||||||
python mach %*
|
python mach %*
|
||||||
) ELSE (
|
) ELSE (
|
||||||
py -2 mach %*
|
py -2 mach %*
|
||||||
)
|
)
|
||||||
|
|
||||||
GOTO exit
|
|
||||||
|
|
||||||
:bad_exit
|
|
||||||
endlocal
|
|
||||||
EXIT /B 1
|
|
||||||
|
|
||||||
:exit
|
|
||||||
endlocal
|
|
||||||
exit /B
|
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
from __future__ import print_function, unicode_literals
|
from __future__ import print_function, unicode_literals
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
|
import locale
|
||||||
import os
|
import os
|
||||||
import os.path as path
|
import os.path as path
|
||||||
import platform
|
import platform
|
||||||
|
@ -310,6 +311,16 @@ class MachCommands(CommandBase):
|
||||||
"lib", "pkgconfig"
|
"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.
|
# Ensure that GStreamer libraries are accessible when linking.
|
||||||
if 'windows' in target_triple:
|
if 'windows' in target_triple:
|
||||||
gst_root = gstreamer_root(target_triple, env)
|
gst_root = gstreamer_root(target_triple, env)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue