mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Launch vcvarsall.bat for the recognized VS Installation Directory from python instead of making mach.bat try that on hardcoded paths.
This commit is contained in:
parent
43a5f65940
commit
215177d791
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
|
||||||
|
@ -318,6 +319,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