Browse Source

Merge branch 'vs14-is-2015' into release

Brad King 11 years ago
parent
commit
598a316154

+ 5 - 5
Help/generator/Visual Studio 14.rst → Help/generator/Visual Studio 14 2015.rst

@@ -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``.

+ 1 - 1
Help/manual/cmake-generators.7.rst

@@ -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

+ 1 - 1
Help/release/3.1.0.rst

@@ -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
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

+ 30 - 10
Source/cmGlobalVisualStudio14Generator.cxx

@@ -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;
 }
 
 //----------------------------------------------------------------------------

+ 1 - 1
Source/cmake.cxx

@@ -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++)
         {