]> granicus.if.org Git - postgresql/commitdiff
Add basic build support for Visual Studio 2008, without resorting to
authorMagnus Hagander <magnus@hagander.net>
Wed, 23 Dec 2009 13:27:04 +0000 (13:27 +0000)
committerMagnus Hagander <magnus@hagander.net>
Wed, 23 Dec 2009 13:27:04 +0000 (13:27 +0000)
generating the build files for 2005 and then converting them.

src/tools/msvc/Project.pm
src/tools/msvc/Solution.pm

index 15732b146b8d5a257274f1420f0b16f61177c5c4..176325e17c73e943049109245bd1afdd1cdda633 100644 (file)
@@ -3,7 +3,7 @@ package Project;
 #
 # 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 strict;
@@ -32,7 +32,8 @@ sub new
         defines         => ';',
         solution        => $solution,
         disablewarnings => '4018;4244;4273;4102;4090',
-        disablelinkerwarnings => ''
+        disablelinkerwarnings => '',
+        vcver           => $solution->{vcver}
     };
 
     bless $self;
@@ -458,7 +459,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
index 3916011a623be6d386370c4bf41ee7fdb2904559..13bfb7bb0eb66551582d3a382dbc4a1269fc8300 100644 (file)
@@ -3,7 +3,7 @@ package Solution;
 #
 # 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 strict;
@@ -20,6 +20,7 @@ sub new
         options  => $options,
         numver   => '',
         strver   => '',
+        vcver    => undef,
     };
     bless $self;
        # integer_datetimes is now the default
@@ -51,9 +52,30 @@ sub new
                unless $options->{wal_segsize}; # undef or 0 means default
        die "Bad wal_segsize $options->{wal_segsize}"
                unless grep {$_ == $options->{wal_segsize}} (1,2,4,8,16,32,64);
+
+    $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