pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Brar Piening <brar@gmx.de>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Subject: Visual Studio 2012 RC
Date: Sat, 02 Jun 2012 23:26:14 +0200
Message-ID: <4FCA84F6.5090706@gmx.de> (raw)

The attached patch makes postgres build with Visual Studio 2012 RC.

As MS finally decided on the name I don't expect any need for changes 
for the final RTM.

I didn't bother to update the docs for now as I still have some hope 
that the developer community succeds in pushig M$ to reverse this decision:
http://people.planetpostgresql.org/andrew/index.php?/archives/276-Microsoft-throws-large-developer-c...

Regards,
Brar

Attachments:

VisualStudio2012.patch (text/plain, 4.3K) download diff -Napcdr -x .git postgresql/src/tools/msvc/MSBuildProject.pm postgresql_dev/src/tools/msvc/MSBuildProject.pm *** postgresql/src/tools/msvc/MSBuildProject.pm Tue Jan 3 15:56:06 2012 --- postgresql_dev/src/tools/msvc/MSBuildProject.pm Wed Mar 14 23:59:07 2012 *************** sub new *** 385,388 **** --- 385,428 ---- return $self; } + package VC2012Project; + + # + # Package that encapsulates a Visual C++ 2012 project file + # + + use strict; + use warnings; + use base qw(MSBuildProject); + + sub new + { + my $classname = shift; + my $self = $classname->SUPER::_new(@_); + bless($self, $classname); + + $self->{vcver} = '11.00'; + + return $self; + } + + sub WriteConfigurationPropertyGroup + { + my ($self, $f, $cfgname, $p) = @_; + my $cfgtype = + ($self->{type} eq "exe") + ?'Application' + :($self->{type} eq "dll"?'DynamicLibrary':'StaticLibrary'); + + print $f <<EOF; + <PropertyGroup Condition="'\$(Configuration)|\$(Platform)'=='$cfgname|$self->{platform}'" Label="Configuration"> + <ConfigurationType>$cfgtype</ConfigurationType> + <UseOfMfc>false</UseOfMfc> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>$p->{wholeopt}</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + EOF + } + 1; diff -Napcdr -x .git postgresql/src/tools/msvc/Solution.pm postgresql_dev/src/tools/msvc/Solution.pm *** postgresql/src/tools/msvc/Solution.pm Wed Mar 14 23:14:28 2012 --- postgresql_dev/src/tools/msvc/Solution.pm Wed Mar 14 23:58:58 2012 *************** sub new *** 645,648 **** --- 645,672 ---- return $self; } + package VS2012Solution; + + # + # Package that encapsulates a Visual Studio 2012 solution file + # + + use Carp; + use strict; + use warnings; + use base qw(Solution); + + sub new + { + my $classname = shift; + my $self = $classname->SUPER::_new(@_); + bless($self, $classname); + + $self->{solutionFileVersion} = '12.00'; + $self->{vcver} = '11.00'; + $self->{visualStudioName} = 'Visual Studio 2012'; + + return $self; + } + 1; diff -Napcdr -x .git postgresql/src/tools/msvc/VSObjectFactory.pm postgresql_dev/src/tools/msvc/VSObjectFactory.pm *** postgresql/src/tools/msvc/VSObjectFactory.pm Tue Jan 3 15:56:06 2012 --- postgresql_dev/src/tools/msvc/VSObjectFactory.pm Wed Mar 14 23:59:03 2012 *************** sub CreateSolution *** 41,46 **** --- 41,50 ---- { return new VS2010Solution(@_); } + elsif ($visualStudioVersion eq '11.00') + { + return new VS2012Solution(@_); + } else { croak "The requested Visual Studio version is not supported."; *************** sub CreateProject *** 68,73 **** --- 72,81 ---- { return new VC2010Project(@_); } + elsif ($visualStudioVersion eq '11.00') + { + return new VC2012Project(@_); + } else { croak "The requested Visual Studio version is not supported."; *************** sub DetermineVisualStudioVersion *** 105,115 **** sub _GetVisualStudioVersion { my($major, $minor) = @_; ! if ($major > 10) { carp "The determined version of Visual Studio is newer than the latest supported version. Returning the latest supported version instead."; ! return '10.00'; } elsif ($major < 6) { --- 113,123 ---- sub _GetVisualStudioVersion { my($major, $minor) = @_; ! if ($major > 11) { carp "The determined version of Visual Studio is newer than the latest supported version. Returning the latest supported version instead."; ! return '11.00'; } elsif ($major < 6) { diff -Napcdr -x .git postgresql/src/tools/msvc/build.pl postgresql_dev/src/tools/msvc/build.pl *** postgresql/src/tools/msvc/build.pl Tue Jan 3 15:56:06 2012 --- postgresql_dev/src/tools/msvc/build.pl Thu Mar 15 00:12:25 2012 *************** elsif ($ARGV[0] ne "RELEASE") *** 50,56 **** # ... and do it ! if ($buildwhat and $vcver eq '10.00') { system("msbuild $buildwhat.vcxproj /verbosity:detailed /p:Configuration=$bconf"); } --- 50,56 ---- # ... and do it ! if ($buildwhat and $vcver >= 10.00) { system("msbuild $buildwhat.vcxproj /verbosity:detailed /p:Configuration=$bconf"); }

view thread (54+ messages)  latest in thread

Message-ID: <4FCA84F6.5090706@gmx.de>
Permalink:  ../4FCA84F6.5090706@gmx.de/
Also on:    postgresql.org/message-id/4FCA84F6.5090706@gmx.de

 ·  · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: brar@gmx.de
  Subject: Re: Visual Studio 2012 RC
  In-Reply-To: <4FCA84F6.5090706@gmx.de>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox