Commit df0cdd53 authored by Magnus Hagander's avatar Magnus Hagander

Add basic build support for Visual Studio 2008, without resorting to

generating the build files for 2005 and then converting them.
parent 4e766f2d
...@@ -3,7 +3,7 @@ package Project; ...@@ -3,7 +3,7 @@ package Project;
# #
# Package that encapsulates a Visual C++ project file generation # Package that encapsulates a Visual C++ project file generation
# #
# $PostgreSQL: pgsql/src/tools/msvc/Project.pm,v 1.21 2009/11/12 00:13:00 tgl Exp $ # $PostgreSQL: pgsql/src/tools/msvc/Project.pm,v 1.22 2009/12/23 13:27:04 mha Exp $
# #
use Carp; use Carp;
use strict; use strict;
...@@ -32,7 +32,8 @@ sub new ...@@ -32,7 +32,8 @@ sub new
defines => ';', defines => ';',
solution => $solution, solution => $solution,
disablewarnings => '4018;4244;4273;4102;4090', disablewarnings => '4018;4244;4273;4102;4090',
disablelinkerwarnings => '' disablelinkerwarnings => '',
vcver => $solution->{vcver}
}; };
bless $self; bless $self;
...@@ -458,7 +459,7 @@ sub WriteHeader ...@@ -458,7 +459,7 @@ sub WriteHeader
print $f <<EOF; print $f <<EOF;
<?xml version="1.0" encoding="Windows-1252"?> <?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> <Platforms><Platform Name="Win32"/></Platforms>
<Configurations> <Configurations>
EOF EOF
......
...@@ -3,7 +3,7 @@ package Solution; ...@@ -3,7 +3,7 @@ package Solution;
# #
# Package that encapsulates a Visual C++ solution file generation # Package that encapsulates a Visual C++ solution file generation
# #
# $PostgreSQL: pgsql/src/tools/msvc/Solution.pm,v 1.48 2009/09/19 05:56:50 adunstan Exp $ # $PostgreSQL: pgsql/src/tools/msvc/Solution.pm,v 1.49 2009/12/23 13:27:04 mha Exp $
# #
use Carp; use Carp;
use strict; use strict;
...@@ -20,6 +20,7 @@ sub new ...@@ -20,6 +20,7 @@ sub new
options => $options, options => $options,
numver => '', numver => '',
strver => '', strver => '',
vcver => undef,
}; };
bless $self; bless $self;
# integer_datetimes is now the default # integer_datetimes is now the default
...@@ -51,9 +52,30 @@ sub new ...@@ -51,9 +52,30 @@ sub new
unless $options->{wal_segsize}; # undef or 0 means default unless $options->{wal_segsize}; # undef or 0 means default
die "Bad wal_segsize $options->{wal_segsize}" die "Bad wal_segsize $options->{wal_segsize}"
unless grep {$_ == $options->{wal_segsize}} (1,2,4,8,16,32,64); unless grep {$_ == $options->{wal_segsize}} (1,2,4,8,16,32,64);
$self->DetermineToolVersions();
return $self; 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. # Return 1 if $oldfile is newer than $newfile, or if $newfile doesn't exist.
# Special case - if config.pl has changed, always return 1 # Special case - if config.pl has changed, always return 1
sub IsNewer sub IsNewer
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment