Merge topic 'vs14-is-2015'

f5afb90d VS: Rename VS 14 generator to 'Visual Studio 14 2015'
This commit is contained in:
Brad King 2014-11-17 09:40:51 -05:00 committed by CMake Topic Stage
commit e943fa8a19
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 The :variable:`CMAKE_GENERATOR_PLATFORM` variable may be set
to specify a target platform name. 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 For compatibility with CMake versions prior to 3.1, one may specify
a target platform name optionally at the end of this generator name: 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``. Specify target platform ``x64``.
``Visual Studio 14 ARM`` ``Visual Studio 14 2015 ARM``
Specify target platform ``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 10 2010
/generator/Visual Studio 11 2012 /generator/Visual Studio 11 2012
/generator/Visual Studio 12 2013 /generator/Visual Studio 12 2013
/generator/Visual Studio 14 /generator/Visual Studio 14 2015
/generator/Xcode /generator/Xcode
Extra Generators Extra Generators

View File

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

View File

@ -13,21 +13,36 @@
#include "cmLocalVisualStudio10Generator.h" #include "cmLocalVisualStudio10Generator.h"
#include "cmMakefile.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 class cmGlobalVisualStudio14Generator::Factory
: public cmGlobalGeneratorFactory : public cmGlobalGeneratorFactory
{ {
public: public:
virtual cmGlobalGenerator* CreateGlobalGenerator( virtual cmGlobalGenerator* CreateGlobalGenerator(
const std::string& genName) const const std::string& name) const
{ {
if(strncmp(genName.c_str(), vs14generatorName, std::string genName;
sizeof(vs14generatorName) - 1) != 0) const char* p = cmVS14GenName(name, genName);
{ if(!p)
return 0; { return 0; }
}
const char* p = genName.c_str() + sizeof(vs14generatorName) - 1;
if(!*p) if(!*p)
{ {
return new cmGlobalVisualStudio14Generator( return new cmGlobalVisualStudio14Generator(
@ -51,7 +66,7 @@ public:
virtual void GetDocumentation(cmDocumentationEntry& entry) const virtual void GetDocumentation(cmDocumentationEntry& entry) const
{ {
entry.Name = vs14generatorName; 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 virtual void GetGenerators(std::vector<std::string>& names) const
@ -85,7 +100,12 @@ bool
cmGlobalVisualStudio14Generator::MatchesGeneratorName( cmGlobalVisualStudio14Generator::MatchesGeneratorName(
const std::string& name) const const std::string& name) const
{ {
return name == this->GetName(); std::string genName;
if(cmVS14GenName(name, genName))
{
return genName == this->GetName();
}
return false;
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------

View File

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