Turn install.bat into a pure one line wrapper fort he perl script.
authorHeikki Linnakangas
Tue, 7 Jul 2015 13:31:52 +0000 (16:31 +0300)
committerHeikki Linnakangas
Tue, 7 Jul 2015 13:37:16 +0000 (16:37 +0300)
Build.bat and vcregress.bat got similar treatment years ago. I'm not sure
why install.bat wasn't treated at the same time, but it seems like a good
idea anyway.

The immediate problem with the old install.bat was that it had quoting
issues, and wouldn't work if the target directory's name contained spaces.
This fixes that problem.

I committed this to master yesterday, this is a backpatch of the same for
all supported versions.

src/tools/msvc/install.bat
src/tools/msvc/install.pl

index c636cbd7f70db47665ca993a9e3ebc5d1288637a..d03277eff2b74ece03a46069db199863885d09ea 100644 (file)
@@ -1,27 +1,6 @@
 @echo off
 REM src/tools/msvc/install.bat
-
-if NOT "%1"=="" GOTO RUN_INSTALL
-
-echo Invalid command line options.
-echo Usage: "install.bat "
-echo.
-REM exit fix for pre-2003 shell especially if used on buildfarm
-if "%XP_EXIT_FIX%" == "yes" exit 1
-exit /b 1
-
-:RUN_INSTALL
-
-SETLOCAL
-
-IF NOT EXIST buildenv.pl goto nobuildenv
-perl -e "require 'buildenv.pl'; while(($k,$v) = each %%ENV) { print qq[\@SET $k=$v\n]; }" > bldenv.bat
-CALL bldenv.bat
-del bldenv.bat
-:nobuildenv
-
-perl install.pl "%1"
-
-REM exit fix for pre-2003 shell especially if used on buildfarm
-if "%XP_EXIT_FIX%" == "yes" exit %ERRORLEVEL%
-exit /b %ERRORLEVEL%
+REM all the logic for this now belongs in install.pl. This file really
+REM only exists so you don't have to type "perl install.pl"
+REM Resist any temptation to add any logic here.
+@perl install.pl %*
index f27a7b3f1629f0479afea6b2daf5e3edf73ed14a..63d3903990799cb7c8bbd9ee42fe02e1e8b810b9 100755 (executable)
@@ -8,6 +8,19 @@ use warnings;
 
 use Install qw(Install);
 
+# buildenv.pl is for specifying the build environment settings
+# it should contain lines like:
+# $ENV{PATH} = "c:/path/to/bison/bin;$ENV{PATH}";
+
+if (-e "src/tools/msvc/buildenv.pl")
+{
+   require "src/tools/msvc/buildenv.pl";
+}
+elsif (-e "./buildenv.pl")
+{
+   require "./buildenv.pl";
+}
+
 my $target = shift || Usage();
 Install($target);