projects: Improve Windows perl detection in batch scripts

- Determine if perl is in the user's PATH by running perl.exe.

Prior to this change detection was done by checking the PATH for perl/
but that did not work in all cases (eg git install includes perl but
not in perl/ path).

Bug: https://github.com/curl/curl/pull/2865
Reported-by: Daniel Jeliński
This commit is contained in:
Jay Satiro 2018-08-11 16:33:12 -04:00
parent b676b66f4d
commit 220cd241cd
2 changed files with 15 additions and 20 deletions

View File

@ -153,26 +153,21 @@ rem ***************************************************************************
rem Check we have Visual Studio installed
if not exist "%ABS_VC_PATH%" goto novc
if not defined PERL_PATH (
rem Check we have Perl in our path
rem using !! below as %% was having \Microsoft was unexpected error.
echo !PATH! | findstr /I /C:"\Perl" 1>nul
if errorlevel 1 (
rem It isn't so check we have it installed and set the path if it is
if exist "%SystemDrive%\Perl" (
set "PATH=%SystemDrive%\Perl\bin;%PATH%"
) else (
if exist "%SystemDrive%\Perl64" (
set "PATH=%SystemDrive%\Perl64\bin;%PATH%"
) else (
goto noperl
)
)
)
rem Check we have Perl in our path
perl --version <NUL 1>NUL 2>&1
if errorlevel 1 (
rem It isn't so check we have it installed and set the path if it is
if exist "%SystemDrive%\Perl" (
set "PATH=%SystemDrive%\Perl\bin;%PATH%"
) else (
if exist "%SystemDrive%\Perl64" (
set "PATH=%SystemDrive%\Perl64\bin;%PATH%"
) else (
goto noperl
)
)
)
) else (
set "PATH=%PERL_PATH%\Perl\bin;%PATH%"
)

View File

@ -73,7 +73,7 @@ rem ***************************************************************************
:prerequisites
rem Check we have Perl in our path
echo %PATH% | findstr /I /C:"\Perl" 1>nul
perl --version <NUL 1>NUL 2>&1
if errorlevel 1 (
rem It isn't so check we have it installed and set the path if it is
if exist "%SystemDrive%\Perl" (