summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2015-07-07 16:31:52 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2015-07-07 16:37:34 +0300
commita5273ef371cedb2c5e51d151e30ebe6f44615a03 (patch)
tree67d56d5bc71bd30f39fc9da8b5b4644fd9975113
parente27d1f3ce5ceeb04b5c05b5c0bfac04db4dc9f86 (diff)
Turn install.bat into a pure one line wrapper fort he perl script.
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.
-rw-r--r--src/tools/msvc/install.bat29
-rwxr-xr-xsrc/tools/msvc/install.pl13
2 files changed, 17 insertions, 25 deletions
diff --git a/src/tools/msvc/install.bat b/src/tools/msvc/install.bat
index c636cbd7f70..d03277eff2b 100644
--- a/src/tools/msvc/install.bat
+++ b/src/tools/msvc/install.bat
@@ -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 <path>"
-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 %*
diff --git a/src/tools/msvc/install.pl b/src/tools/msvc/install.pl
index f27a7b3f162..63d39039907 100755
--- a/src/tools/msvc/install.pl
+++ b/src/tools/msvc/install.pl
@@ -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);