Merge branch 'vs14-is-2015' into release

This commit is contained in:
Brad King 2014-11-17 09:44:52 -05:00
commit 598a316154
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++)
{