diff options
author | Jay Satiro <raysatiro@yahoo.com> | 2018-08-11 16:33:12 -0400 |
---|---|---|
committer | Jay Satiro <raysatiro@yahoo.com> | 2018-08-11 16:33:12 -0400 |
commit | 220cd241cd8e64c5968df91c6f0a8083b49869ee (patch) | |
tree | e4bdc30b3aa9772c36d628e31e4ac3fccecbb62e | |
parent | b676b66f4ddc68a0e357fc4cf79b9adb981c8df5 (diff) |
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
-rw-r--r-- | projects/build-openssl.bat | 33 | ||||
-rw-r--r-- | projects/checksrc.bat | 2 |
2 files changed, 15 insertions, 20 deletions
diff --git a/projects/build-openssl.bat b/projects/build-openssl.bat index 9fd49b780..98daff529 100644 --- a/projects/build-openssl.bat +++ b/projects/build-openssl.bat @@ -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%" ) diff --git a/projects/checksrc.bat b/projects/checksrc.bat index 3c38f50e6..5c8debf11 100644 --- a/projects/checksrc.bat +++ b/projects/checksrc.bat @@ -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" ( |