diff options
author | Andrew Dunstan <andrew@dunslane.net> | 2011-01-04 16:06:51 -0500 |
---|---|---|
committer | Andrew Dunstan <andrew@dunslane.net> | 2011-01-04 16:06:51 -0500 |
commit | d61d3c39ddcdc890fd9a807f5cb10ce76a340642 (patch) | |
tree | 0194ba2a2fc98c4a069a042a42e9733a67a40326 | |
parent | 3de618cee89901306649835f8fa7c5ab07b8ee9f (diff) | |
download | postgresql-d61d3c39ddcdc890fd9a807f5cb10ce76a340642.tar.gz |
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.
-rw-r--r-- | src/tools/msvc/Project.pm | 5 | ||||
-rw-r--r-- | src/tools/msvc/Solution.pm | 23 |
2 files changed, 26 insertions, 2 deletions
diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm index 27ac3caf04..f2e3f5fdb9 100644 --- a/src/tools/msvc/Project.pm +++ b/src/tools/msvc/Project.pm @@ -32,7 +32,8 @@ sub new defines => ';', solution => $solution, disablewarnings => '4018;4244;4273;4102;4090', - disablelinkerwarnings => '' + disablelinkerwarnings => '', + vcver => $solution->{vcver} }; bless $self; @@ -456,7 +457,7 @@ sub WriteHeader print $f <<EOF; <?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject ProjectType="Visual C++" Version="8.00" Name="$self->{name}" ProjectGUID="$self->{guid}"> +<VisualStudioProject ProjectType="Visual C++" Version="$self->{vcver}" Name="$self->{name}" ProjectGUID="$self->{guid}"> <Platforms><Platform Name="Win32"/></Platforms> <Configurations> EOF diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index a4681aff69..52bb9f826f 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -20,6 +20,7 @@ sub new options => $options, numver => '', strver => '', + vcver => undef, }; bless $self; if ($options->{xml}) @@ -29,9 +30,31 @@ sub new die "XML requires both XSLT and ICONV\n"; } } + + $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 = <P>; + 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 |