VS: Rename VS 14 generator to 'Visual Studio 14 2015'

Now that we know the year component of this VS version we
can add it to the generator name.  For convenience, map
the name without the year to the name with the year.
This commit is contained in:
Brad King 2014-11-14 14:21:50 -05:00
parent 433c6d4689
commit f5afb90d7c
5 changed files with 38 additions and 18 deletions

View File

@ -1,7 +1,7 @@
Visual Studio 14
----------------
Visual Studio 14 2015
---------------------
Generates Visual Studio 14 project files.
Generates Visual Studio 14 (VS 2015) project files.
The :variable:`CMAKE_GENERATOR_PLATFORM` variable may be set
to specify a target platform name.
@ -9,8 +9,8 @@ to specify a target platform name.
For compatibility with CMake versions prior to 3.1, one may specify
a target platform name optionally at the end of this generator name:
``Visual Studio 14 Win64``
``Visual Studio 14 2015 Win64``
Specify target platform ``x64``.
``Visual Studio 14 ARM``
``Visual Studio 14 2015 ARM``
Specify target platform ``ARM``.

View File

@ -64,7 +64,7 @@ one may launch CMake from any environment.
/generator/Visual Studio 10 2010
/generator/Visual Studio 11 2012
/generator/Visual Studio 12 2013
/generator/Visual Studio 14
/generator/Visual Studio 14 2015
/generator/Xcode
Extra Generators

View File

@ -18,7 +18,7 @@ New Features
Generators
----------
* A :generator:`Visual Studio 14` generator was added.
* The :generator:`Visual Studio 14 2015` generator was added.
Windows Phone and Windows Store
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -13,21 +13,36 @@
#include "cmLocalVisualStudio10Generator.h"
#include "cmMakefile.h"
static const char vs14generatorName[] = "Visual Studio 14";
static const char vs14generatorName[] = "Visual Studio 14 2015";
// Map generator name without year to name with year.
static const char* cmVS14GenName(const std::string& name, std::string& genName)
{
if(strncmp(name.c_str(), vs14generatorName,
sizeof(vs14generatorName)-6) != 0)
{
return 0;
}
const char* p = name.c_str() + sizeof(vs14generatorName) - 6;
if(cmHasLiteralPrefix(p, " 2015"))
{
p += 5;
}
genName = std::string(vs14generatorName) + p;
return p;
}
class cmGlobalVisualStudio14Generator::Factory
: public cmGlobalGeneratorFactory
{
public:
virtual cmGlobalGenerator* CreateGlobalGenerator(
const std::string& genName) const
const std::string& name) const
{
if(strncmp(genName.c_str(), vs14generatorName,
sizeof(vs14generatorName) - 1) != 0)
{
return 0;
}
const char* p = genName.c_str() + sizeof(vs14generatorName) - 1;
std::string genName;
const char* p = cmVS14GenName(name, genName);
if(!p)
{ return 0; }
if(!*p)
{
return new cmGlobalVisualStudio14Generator(
@ -51,7 +66,7 @@ public:
virtual void GetDocumentation(cmDocumentationEntry& entry) const
{
entry.Name = vs14generatorName;
entry.Brief = "Generates Visual Studio 14 project files.";
entry.Brief = "Generates Visual Studio 14 (VS 2015) project files.";
}
virtual void GetGenerators(std::vector<std::string>& names) const
@ -85,7 +100,12 @@ bool
cmGlobalVisualStudio14Generator::MatchesGeneratorName(
const std::string& name) const
{
return name == this->GetName();
std::string genName;
if(cmVS14GenName(name, genName))
{
return genName == this->GetName();
}
return false;
}
//----------------------------------------------------------------------------

View File

@ -1403,7 +1403,7 @@ int cmake::ActualConfigure()
{"10.0", "Visual Studio 10 2010"},
{"11.0", "Visual Studio 11 2012"},
{"12.0", "Visual Studio 12 2013"},
{"14.0", "Visual Studio 14"},
{"14.0", "Visual Studio 14 2015"},
{0, 0}};
for(int i=0; version[i].MSVersion != 0; i++)
{