From ebbf741d5d449f6fdc1983aca54d1f232d866b16 Mon Sep 17 00:00:00 2001 From: Andrew Dunstan Date: Tue, 4 Jan 2011 16:07:05 -0500 Subject: [PATCH] Allow older branches to be built with Visual Studio 2008. This is a backport of commit df0cdd53 to the 8.2, 8.3 and 8.4 branches. --- src/tools/msvc/Project.pm | 3 ++- src/tools/msvc/Solution.pm | 25 ++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm index fa466c79882..3d09e643302 100644 --- a/src/tools/msvc/Project.pm +++ b/src/tools/msvc/Project.pm @@ -24,6 +24,7 @@ sub new { defines => ';', solution => $solution, disablewarnings => '4018;4244', + vcver => $solution->{vcver} }; bless $self; @@ -337,7 +338,7 @@ sub WriteHeader { print $f < - + EOF diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 3431ca2e6df..6a30253ab2e 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -12,11 +12,34 @@ sub new { options => $options, numver => '', strver => '', + vcver => undef, }; bless $self; - return $self; + + $self->DetermineToolVersions(); + + return $self; + } + +sub DetermineToolVersions +{ + my $self = shift; + + # Determine version of vcbuild command, to set proper verison of visual studio + open(P,"vcbuild /? |") || die "vcbuild command not found"; + my $line =

; + close(P); + if ($line !~ /^Microsoft \(R\) Visual C\+\+ Project Builder - Command Line Version (\d+)\.00\.\d+/) + { + die "Unable to determine vcbuild version from first line of output!"; + } + if ($1 == 8) { $self->{vcver} = '8.00' } + elsif ($1 == 9) { $self->{vcver} = '9.00' } + else { die "Unsupported version of Visual Studio: $1" } + print "Detected Visual Studio version $self->{vcver}\n"; } + # Return 1 if $oldfile is newer than $newfile, or if $newfile doesn't exist. # Special case - if config.pl has changed, always return 1 sub IsNewer {