mirror of https://github.com/nodejs/node.git
build, win: vcbuild improvements
Removes extra erroor messages when Python is not installed. Removes "vswhere not found" message when no VS2017 installation is found. Adds support for DEBUG_HELPER to vcbuild.bat. Fixes: https://github.com/nodejs/node/issues/16864 PR-URL: https://github.com/nodejs/node/pull/17015 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>pull/18684/merge
parent
d3955d15ff
commit
887a2ba92e
|
@ -1,4 +1,5 @@
|
|||
@IF NOT DEFINED DEBUG_HELPER @ECHO OFF
|
||||
echo Looking for Python 2.x
|
||||
SETLOCAL
|
||||
:: If python.exe is in %Path%, just validate
|
||||
FOR /F "delims=" %%a IN ('where python 2^> NUL') DO (
|
||||
|
@ -14,18 +15,18 @@ FOR %%K IN ( "HKCU\Software", "HKLM\SOFTWARE", "HKLM\Software\Wow6432Node") DO (
|
|||
:: If validate returns 0 just jump to the end
|
||||
IF NOT ERRORLEVEL 1 GOTO :validate
|
||||
)
|
||||
EXIT /B 1
|
||||
goto :no-python
|
||||
|
||||
:: Helper subroutine to handle quotes in %1
|
||||
:find-main-branch
|
||||
SET main_key="%~1\Python\PythonCore"
|
||||
REG QUERY %main_key% /s | findstr "2." | findstr InstallPath > NUL 2> NUL
|
||||
REG QUERY %main_key% /s 2> NUL | findstr "2." | findstr InstallPath > NUL 2> NUL
|
||||
IF NOT ERRORLEVEL 1 CALL :find-key %main_key%
|
||||
EXIT /B
|
||||
|
||||
:: Query registry sub-tree for InstallPath
|
||||
:find-key
|
||||
FOR /F "delims=" %%a IN ('REG QUERY %1 /s ^| findstr "2." ^| findstr InstallPath') DO IF NOT ERRORLEVEL 1 CALL :find-path %%a
|
||||
FOR /F "delims=" %%a IN ('REG QUERY %1 /s 2> NUL ^| findstr "2." ^| findstr InstallPath') DO IF NOT ERRORLEVEL 1 CALL :find-path %%a
|
||||
EXIT /B
|
||||
|
||||
:: Parse the value of %1 as the path for python.exe
|
||||
|
@ -39,13 +40,20 @@ EXIT /B 1
|
|||
|
||||
:: Check if %p% holds a path to a real python2 executable
|
||||
:validate
|
||||
IF NOT EXIST "%p%python.exe" EXIT /B 1
|
||||
IF NOT EXIST "%p%python.exe" goto :no-python
|
||||
:: Check if %p% is python2
|
||||
"%p%python.exe" -V 2>&1 | findstr /R "^Python.2.*" > NUL
|
||||
IF ERRORLEVEL 1 EXIT /B %ERRORLEVEL%
|
||||
IF ERRORLEVEL 1 goto :no-python2
|
||||
:: We can wrap it up
|
||||
ENDLOCAL & SET pt=%p%& SET need_path_ext=%need_path%
|
||||
SET VCBUILD_PYTHON_LOCATION=%pt%python.exe
|
||||
IF %need_path_ext%==1 SET Path=%Path%;%pt%
|
||||
SET need_path_ext=
|
||||
EXIT /B %ERRORLEVEL%
|
||||
EXIT /B %ERRORLEVEL%
|
||||
|
||||
:no-python2
|
||||
echo Python found in %p%, but it is not v2.x.
|
||||
exit /B 1
|
||||
:no-python
|
||||
echo Could not find Python.
|
||||
exit /B 1
|
||||
|
|
|
@ -28,5 +28,4 @@ for /f "usebackq tokens=*" %%i in (`vswhere %VSWHERE_ARGS%`) do (
|
|||
|
||||
:no-vswhere
|
||||
endlocal
|
||||
echo could not find "vswhere"
|
||||
exit /B 1
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@echo off
|
||||
@if not defined DEBUG_HELPER @ECHO OFF
|
||||
|
||||
cd %~dp0
|
||||
|
||||
|
@ -166,7 +166,7 @@ if "%target%"=="Clean" rmdir /S /Q %~dp0deps\icu
|
|||
:no-depsicu
|
||||
|
||||
call tools\msvs\find_python.cmd
|
||||
if errorlevel 1 echo Could not find python2 & goto :exit
|
||||
if errorlevel 1 goto :exit
|
||||
|
||||
call :getnodeversion || exit /b 1
|
||||
|
||||
|
|
Loading…
Reference in New Issue