summaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
authorMichael Paquier2022-07-14 02:22:49 +0000
committerMichael Paquier2022-07-14 02:22:49 +0000
commit6203583b72b58272010f8d06999811ff39922acf (patch)
tree6049f2ba855246e2200904ece3dd16cdb3e5dd0f /src/tools
parent4ca9985957881c223b4802d309c0bbbcf8acd1c1 (diff)
Remove support for Visual Studio 2013
No members of the buildfarm are using this version of Visual Studio, resulting in all the code cleaned up here as being mostly dead, and VS2017 is the oldest version still supported. More versions could be cut, but the gain would be minimal, while removing only VS2013 has the advantage to remove from the core code all the dependencies on the value defined by _MSC_VER, where compatibility tweaks have accumulated across the years mostly around locales and strtof(), so that's a nice isolated cleanup. Note that this commit additionally allows a revert of 3154e16. The versions of Visual Studio now supported range from 2015 to 2022. Author: Michael Paquier Reviewed-by: Juan José Santamaría Flecha, Tom Lane, Thomas Munro, Justin Pryzby Discussion: https://postgr.es/m/YoH2IMtxcS3ncWn+@paquier.xyz
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/msvc/MSBuildProject.pm27
-rw-r--r--src/tools/msvc/README8
-rw-r--r--src/tools/msvc/Solution.pm28
-rw-r--r--src/tools/msvc/VSObjectFactory.pm12
4 files changed, 7 insertions, 68 deletions
diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index f24d9e53482..62acdda3a19 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -4,7 +4,7 @@
package MSBuildProject;
#
-# Package that encapsulates a MSBuild project file (Visual C++ 2013 or greater)
+# Package that encapsulates a MSBuild project file (Visual C++ 2015 or greater)
#
# src/tools/msvc/MSBuildProject.pm
#
@@ -405,31 +405,6 @@ EOF
return;
}
-package VC2013Project;
-
-#
-# Package that encapsulates a Visual C++ 2013 project file
-#
-
-use strict;
-use warnings;
-use base qw(MSBuildProject);
-
-no warnings qw(redefine); ## no critic
-
-sub new
-{
- my $classname = shift;
- my $self = $classname->SUPER::_new(@_);
- bless($self, $classname);
-
- $self->{vcver} = '12.00';
- $self->{PlatformToolset} = 'v120';
- $self->{ToolsVersion} = '12.0';
-
- return $self;
-}
-
package VC2015Project;
#
diff --git a/src/tools/msvc/README b/src/tools/msvc/README
index 473d6f425b2..1c36925258e 100644
--- a/src/tools/msvc/README
+++ b/src/tools/msvc/README
@@ -4,7 +4,7 @@ MSVC build
==========
This directory contains the tools required to build PostgreSQL using
-Microsoft Visual Studio 2013 - 2022. This builds the whole backend, not just
+Microsoft Visual Studio 2015 - 2022. This builds the whole backend, not just
the libpq frontend library. For more information, see the documentation
chapter "Installation on Windows" and the description below.
@@ -67,7 +67,7 @@ Install.pm module containing the install logic
Mkvcbuild.pm module containing the code to generate the Visual
Studio build (project/solution) files
MSBuildProject.pm module containing the code to generate MSBuild based
- project files (Visual Studio 2013 or greater)
+ project files (Visual Studio 2015 or greater)
Project.pm module containing the common code to generate the
Visual Studio project files. Also provides the
common interface of all project file generators
@@ -88,10 +88,10 @@ config_default.pl to create the configuration arguments.
These configuration arguments are passed over to Mkvcbuild::mkvcbuild
(Mkvcbuild.pm) which creates the Visual Studio project and solution files.
It does this by using VSObjectFactory::CreateSolution to create an object
-implementing the Solution interface (this could be either VS2013Solution,
+implementing the Solution interface (this could be either
VS2015Solution, VS2017Solution, VS2019Solution or VS2022Solution, all in
Solution.pm, depending on the user's build environment) and adding objects
-implementing the corresponding Project interface (VC2013Project,
+implementing the corresponding Project interface (
VC2015Project, VC2017Project, VC2019Project or VC2022Project from
MSBuildProject.pm) to it. When Solution::Save is called, the implementations
of Solution and Project save their content in the appropriate format.
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index a9dd6045344..fa32dc371dc 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -1263,34 +1263,6 @@ sub GetFakeConfigure
return $cfg;
}
-package VS2013Solution;
-
-#
-# Package that encapsulates a Visual Studio 2013 solution file
-#
-
-use Carp;
-use strict;
-use warnings;
-use base qw(Solution);
-
-no warnings qw(redefine); ## no critic
-
-sub new
-{
- my $classname = shift;
- my $self = $classname->SUPER::_new(@_);
- bless($self, $classname);
-
- $self->{solutionFileVersion} = '12.00';
- $self->{vcver} = '12.00';
- $self->{visualStudioName} = 'Visual Studio 2013';
- $self->{VisualStudioVersion} = '12.0.21005.1';
- $self->{MinimumVisualStudioVersion} = '10.0.40219.1';
-
- return $self;
-}
-
package VS2015Solution;
#
diff --git a/src/tools/msvc/VSObjectFactory.pm b/src/tools/msvc/VSObjectFactory.pm
index 9f9712b7935..975ccf2ee56 100644
--- a/src/tools/msvc/VSObjectFactory.pm
+++ b/src/tools/msvc/VSObjectFactory.pm
@@ -33,11 +33,7 @@ sub CreateSolution
$visualStudioVersion = DetermineVisualStudioVersion();
}
- if ($visualStudioVersion eq '12.00')
- {
- return new VS2013Solution(@_);
- }
- elsif ($visualStudioVersion eq '14.00')
+ if ($visualStudioVersion eq '14.00')
{
return new VS2015Solution(@_);
}
@@ -87,11 +83,7 @@ sub CreateProject
$visualStudioVersion = DetermineVisualStudioVersion();
}
- if ($visualStudioVersion eq '12.00')
- {
- return new VC2013Project(@_);
- }
- elsif ($visualStudioVersion eq '14.00')
+ if ($visualStudioVersion eq '14.00')
{
return new VC2015Project(@_);
}