This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  e03f83f5efd8d0b0d7d9ab8a7140b1de3d7fc528 (commit)
       via  1edaef39f128e869668b908958595d667414c303 (commit)
       via  808f4b1fa4c13f9b412520f4bd2aebeaff95ccda (commit)
       via  13e6d5595f4f076073e1522286f20f1a6733ad3e (commit)
       via  8f4bdcc6cbc9dd3b146d4d51abf2f3b57bb6bbc8 (commit)
       via  eaa9f2f8eeaacb8df762efa5f7f95820aac06729 (commit)
       via  2b3e7b6f943d525cd02c13daacd596f17d100fd4 (commit)
       via  39af06e7f78863861ba7f8e85c511fb557412ff0 (commit)
       via  ee329d543c558a2064edc805b08f337bd31ab1fd (commit)
      from  4ab4054c6faba93b8891197beecf6887011a6409 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e03f83f5efd8d0b0d7d9ab8a7140b1de3d7fc528
commit e03f83f5efd8d0b0d7d9ab8a7140b1de3d7fc528
Merge: 4ab4054 1edaef3
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Mon Jun 9 11:20:22 2014 -0400
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Mon Jun 9 11:20:22 2014 -0400

    Merge topic 'vs10-refactor' into next
    
    1edaef39 VS: Factor MS-tool-specific vcxproj settings into helper
    808f4b1f VS: Re-order logic to group MS-tool-specific options together
    13e6d559 VS: Set some options directly instead of using flag map
    8f4bdcc6 VS: Remove always-true condition on compile options block
    eaa9f2f8 VS: Refactor internal generator factory logic
    2b3e7b6f VS: Fix vcxproj specification of empty output file extension
    39af06e7 VS: Fix vcxproj elements specifying binary output locations
    ee329d54 VS: Refactor flag table lookup


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1edaef39f128e869668b908958595d667414c303
commit 1edaef39f128e869668b908958595d667414c303
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Thu Jun 5 14:57:23 2014 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Jun 9 11:00:03 2014 -0400

    VS: Factor MS-tool-specific vcxproj settings into helper
    
    Factor a WriteMSToolConfigurationValues helper method out of the
    cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues method
    to isolate the configuration settings specific to MS tools.

diff --git a/Source/cmVisualStudio10TargetGenerator.cxx 
b/Source/cmVisualStudio10TargetGenerator.cxx
index 06c0825..acf3930 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -467,8 +467,6 @@ void 
cmVisualStudio10TargetGenerator::WriteProjectConfigurations()
 
 void cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues()
 {
-  cmGlobalVisualStudio10Generator* gg =
-    static_cast<cmGlobalVisualStudio10Generator*>(this->GlobalGenerator);
   std::vector<std::string> *configs =
     static_cast<cmGlobalVisualStudio7Generator *>
     (this->GlobalGenerator)->GetConfigurations();
@@ -503,52 +501,61 @@ void 
cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues()
     configType += "</ConfigurationType>\n";
     this->WriteString(configType.c_str(), 2);
 
-    const char* mfcFlag =
-      this->Target->GetMakefile()->GetDefinition("CMAKE_MFC_FLAG");
-    std::string mfcFlagValue = mfcFlag ? mfcFlag : "0";
+    this->WriteMSToolConfigurationValues(*i);
 
-    std::string useOfMfcValue = "false";
-    if(mfcFlagValue == "1")
-      {
-      useOfMfcValue = "Static";
-      }
-    else if(mfcFlagValue == "2")
-      {
-      useOfMfcValue = "Dynamic";
-      }
-    std::string mfcLine = "<UseOfMfc>";
-    mfcLine += useOfMfcValue + "</UseOfMfc>\n";
-    this->WriteString(mfcLine.c_str(), 2);
+    this->WriteString("</PropertyGroup>\n", 1);
+    }
+}
 
-    if((this->Target->GetType() <= cmTarget::OBJECT_LIBRARY &&
-       this->ClOptions[*i]->UsingUnicode()) ||
-       this->Target->GetPropertyAsBool("VS_WINRT_EXTENSIONS"))
-      {
-      this->WriteString("<CharacterSet>Unicode</CharacterSet>\n", 2);
-      }
-    else if (this->Target->GetType() <= cmTarget::MODULE_LIBRARY &&
-       this->ClOptions[*i]->UsingSBCS())
-      {
-      this->WriteString("<CharacterSet>NotSet</CharacterSet>\n", 2);
-      }
-    else
-      {
-      this->WriteString("<CharacterSet>MultiByte</CharacterSet>\n", 2);
-      }
-    if(const char* toolset = gg->GetPlatformToolset())
-      {
-      std::string pts = "<PlatformToolset>";
-      pts += toolset;
-      pts += "</PlatformToolset>\n";
-      this->WriteString(pts.c_str(), 2);
-      }
-    if(this->Target->GetPropertyAsBool("VS_WINRT_EXTENSIONS"))
-      {
-      this->WriteString("<WindowsAppContainer>true"
-                        "</WindowsAppContainer>\n", 2);
-      }
+//----------------------------------------------------------------------------
+void cmVisualStudio10TargetGenerator
+::WriteMSToolConfigurationValues(std::string const& config)
+{
+  cmGlobalVisualStudio10Generator* gg =
+    static_cast<cmGlobalVisualStudio10Generator*>(this->GlobalGenerator);
+  const char* mfcFlag =
+    this->Target->GetMakefile()->GetDefinition("CMAKE_MFC_FLAG");
+  std::string mfcFlagValue = mfcFlag ? mfcFlag : "0";
 
-    this->WriteString("</PropertyGroup>\n", 1);
+  std::string useOfMfcValue = "false";
+  if(mfcFlagValue == "1")
+    {
+    useOfMfcValue = "Static";
+    }
+  else if(mfcFlagValue == "2")
+    {
+    useOfMfcValue = "Dynamic";
+    }
+  std::string mfcLine = "<UseOfMfc>";
+  mfcLine += useOfMfcValue + "</UseOfMfc>\n";
+  this->WriteString(mfcLine.c_str(), 2);
+
+  if((this->Target->GetType() <= cmTarget::OBJECT_LIBRARY &&
+      this->ClOptions[config]->UsingUnicode()) ||
+     this->Target->GetPropertyAsBool("VS_WINRT_EXTENSIONS"))
+    {
+    this->WriteString("<CharacterSet>Unicode</CharacterSet>\n", 2);
+    }
+  else if (this->Target->GetType() <= cmTarget::MODULE_LIBRARY &&
+           this->ClOptions[config]->UsingSBCS())
+    {
+    this->WriteString("<CharacterSet>NotSet</CharacterSet>\n", 2);
+    }
+  else
+    {
+    this->WriteString("<CharacterSet>MultiByte</CharacterSet>\n", 2);
+    }
+  if(const char* toolset = gg->GetPlatformToolset())
+    {
+    std::string pts = "<PlatformToolset>";
+    pts += toolset;
+    pts += "</PlatformToolset>\n";
+    this->WriteString(pts.c_str(), 2);
+    }
+  if(this->Target->GetPropertyAsBool("VS_WINRT_EXTENSIONS"))
+    {
+    this->WriteString("<WindowsAppContainer>true"
+                      "</WindowsAppContainer>\n", 2);
     }
 }
 
diff --git a/Source/cmVisualStudio10TargetGenerator.h 
b/Source/cmVisualStudio10TargetGenerator.h
index 67a2488..8f2faca 100644
--- a/Source/cmVisualStudio10TargetGenerator.h
+++ b/Source/cmVisualStudio10TargetGenerator.h
@@ -56,6 +56,7 @@ private:
   void WriteString(const char* line, int indentLevel);
   void WriteProjectConfigurations();
   void WriteProjectConfigurationValues();
+  void WriteMSToolConfigurationValues(std::string const& config);
   void WriteSource(const char* tool, cmSourceFile const* sf,
                    const char* end = 0);
   void WriteSources(const char* tool,

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=808f4b1fa4c13f9b412520f4bd2aebeaff95ccda
commit 808f4b1fa4c13f9b412520f4bd2aebeaff95ccda
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Thu Jun 5 13:18:09 2014 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Jun 9 11:00:01 2014 -0400

    VS: Re-order logic to group MS-tool-specific options together

diff --git a/Source/cmVisualStudio10TargetGenerator.cxx 
b/Source/cmVisualStudio10TargetGenerator.cxx
index c2c143d..06c0825 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -1445,6 +1445,10 @@ void cmVisualStudio10TargetGenerator::WriteClOptions(
   clOptions.OutputAdditionalOptions(*this->BuildFileStream, "      ", "");
   this->OutputIncludes(includes);
   clOptions.OutputFlagMap(*this->BuildFileStream, "      ");
+  clOptions.OutputPreprocessorDefinitions(*this->BuildFileStream, "      ",
+                                          "\n", "CXX");
+
+  this->WriteString("<ObjectFileName>$(IntDir)</ObjectFileName>\n", 3);
 
   // If not in debug mode, write the DebugInformationFormat field
   // without value so PDBs don't get generated uselessly.
@@ -1454,10 +1458,6 @@ void cmVisualStudio10TargetGenerator::WriteClOptions(
                       "</DebugInformationFormat>\n", 3);
     }
 
-  clOptions.OutputPreprocessorDefinitions(*this->BuildFileStream, "      ",
-                                          "\n", "CXX");
-  this->WriteString("<ObjectFileName>$(IntDir)</ObjectFileName>\n", 3);
-
   // Specify the compiler program database file if configured.
   std::string pdb = this->Target->GetCompilePDBPath(configName.c_str());
   if(!pdb.empty())
@@ -1600,14 +1600,6 @@ 
cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
     flags += " ";
     flags += flagsConfig;
     }
-  if ( this->Target->GetPropertyAsBool("WIN32_EXECUTABLE") )
-    {
-    linkOptions.AddFlag("SubSystem", "Windows");
-    }
-  else
-    {
-    linkOptions.AddFlag("SubSystem", "Console");
-    }
   std::string standardLibsVar = "CMAKE_";
   standardLibsVar += linkLanguage;
   standardLibsVar += "_STANDARD_LIBRARIES";
@@ -1661,22 +1653,7 @@ 
cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
   linkDirs += "%(AdditionalLibraryDirectories)";
   linkOptions.AddFlag("AdditionalLibraryDirectories", linkDirs.c_str());
   linkOptions.AddFlag("AdditionalDependencies", libs.c_str());
-  linkOptions.AddFlag("Version", "");
-
-  if(const char* stackVal =
-     this->Makefile->GetDefinition("CMAKE_"+linkLanguage+"_STACK_SIZE"))
-    {
-    linkOptions.AddFlag("StackReserveSize", stackVal);
-    }
 
-  if(linkOptions.IsDebug() || flags.find("/debug") != flags.npos)
-    {
-    linkOptions.AddFlag("GenerateDebugInformation", "true");
-    }
-  else
-    {
-    linkOptions.AddFlag("GenerateDebugInformation", "false");
-    }
   std::string targetName;
   std::string targetNameSO;
   std::string targetNameFull;
@@ -1695,6 +1672,31 @@ 
cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
                                   config.c_str());
     }
 
+  linkOptions.AddFlag("Version", "");
+
+  if ( this->Target->GetPropertyAsBool("WIN32_EXECUTABLE") )
+    {
+    linkOptions.AddFlag("SubSystem", "Windows");
+    }
+  else
+    {
+    linkOptions.AddFlag("SubSystem", "Console");
+    }
+
+  if(const char* stackVal =
+     this->Makefile->GetDefinition("CMAKE_"+linkLanguage+"_STACK_SIZE"))
+    {
+    linkOptions.AddFlag("StackReserveSize", stackVal);
+    }
+
+  if(linkOptions.IsDebug() || flags.find("/debug") != flags.npos)
+    {
+    linkOptions.AddFlag("GenerateDebugInformation", "true");
+    }
+  else
+    {
+    linkOptions.AddFlag("GenerateDebugInformation", "false");
+    }
   std::string pdb = this->Target->GetPDBDirectory(config.c_str());
   pdb += "/";
   pdb += targetNamePDB;

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=13e6d5595f4f076073e1522286f20f1a6733ad3e
commit 13e6d5595f4f076073e1522286f20f1a6733ad3e
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Thu Jun 5 12:56:39 2014 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Jun 9 10:59:59 2014 -0400

    VS: Set some options directly instead of using flag map
    
    Instead of passing /TC, /TP, and /STACK: as strings to be parsed through
    the flag map, directly set the results in the options map.

diff --git a/Source/cmVisualStudio10TargetGenerator.cxx 
b/Source/cmVisualStudio10TargetGenerator.cxx
index 7b30e42..c2c143d 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -1147,17 +1147,18 @@ bool 
cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags(
     }
   // if the source file does not match the linker language
   // then force c or c++
+  const char* compileAs = 0;
   if(needForceLang || (linkLanguage != lang))
     {
     if(lang == "CXX")
       {
       // force a C++ file type
-      flags += " /TP ";
+      compileAs = "CompileAsCpp";
       }
     else if(lang == "C")
       {
       // force to c
-      flags += " /TC ";
+      compileAs = "CompileAsC";
       }
     }
   bool hasFlags = false;
@@ -1193,7 +1194,7 @@ bool 
cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags(
       }
     // if we have flags or defines for this config then
     // use them
-    if(flags.size() || configDefines.size())
+    if(!flags.empty() || !configDefines.empty() || compileAs)
       {
       (*this->BuildFileStream ) << firstString;
       firstString = ""; // only do firstString once
@@ -1202,6 +1203,10 @@ bool 
cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags(
         clOptions(this->LocalGenerator,
                   cmVisualStudioGeneratorOptions::Compiler,
                   this->GetClFlagTable(), 0, this);
+      if(compileAs)
+        {
+        clOptions.AddFlag("CompileAs", compileAs);
+        }
       clOptions.Parse(flags.c_str());
       clOptions.AddDefines(configDefines.c_str());
       clOptions.SetConfiguration((*config).c_str());
@@ -1393,11 +1398,11 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions(
   // set the correct language
   if(linkLanguage == "C")
     {
-    flags += " /TC ";
+    clOptions.AddFlag("CompileAs", "CompileAsC");
     }
   if(linkLanguage == "CXX")
     {
-    flags += " /TP ";
+    clOptions.AddFlag("CompileAs", "CompileAsCpp");
     }
   this->LocalGenerator->AddCompileOptions(flags, this->Target,
                                           linkLanguage, configName.c_str());
@@ -1571,16 +1576,7 @@ 
cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
     {
     linkType = "EXE";
     }
-  std::string stackVar = "CMAKE_";
-  stackVar += linkLanguage;
-  stackVar += "_STACK_SIZE";
-  const char* stackVal = this->Makefile->GetDefinition(stackVar.c_str());
   std::string flags;
-  if(stackVal)
-    {
-    flags += " /STACK:";
-    flags += stackVal;
-    }
   std::string linkFlagVarBase = "CMAKE_";
   linkFlagVarBase += linkType;
   linkFlagVarBase += "_LINKER_FLAGS";
@@ -1666,6 +1662,13 @@ 
cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
   linkOptions.AddFlag("AdditionalLibraryDirectories", linkDirs.c_str());
   linkOptions.AddFlag("AdditionalDependencies", libs.c_str());
   linkOptions.AddFlag("Version", "");
+
+  if(const char* stackVal =
+     this->Makefile->GetDefinition("CMAKE_"+linkLanguage+"_STACK_SIZE"))
+    {
+    linkOptions.AddFlag("StackReserveSize", stackVal);
+    }
+
   if(linkOptions.IsDebug() || flags.find("/debug") != flags.npos)
     {
     linkOptions.AddFlag("GenerateDebugInformation", "true");

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8f4bdcc6cbc9dd3b146d4d51abf2f3b57bb6bbc8
commit 8f4bdcc6cbc9dd3b146d4d51abf2f3b57bb6bbc8
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Thu Jun 5 11:50:10 2014 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Jun 9 10:59:57 2014 -0400

    VS: Remove always-true condition on compile options block
    
    The cmVisualStudio10TargetGenerator::ComputeClOptions method is
    only called when the target type compiles, so do not duplicate
    that check in the implementation.

diff --git a/Source/cmVisualStudio10TargetGenerator.cxx 
b/Source/cmVisualStudio10TargetGenerator.cxx
index 453e983..7b30e42 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -1367,44 +1367,40 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions(
   Options& clOptions = *pOptions;
 
   std::string flags;
-  // collect up flags for
-  if(this->Target->GetType() < cmTarget::UTILITY)
+  const std::string& linkLanguage =
+    this->Target->GetLinkerLanguage(configName.c_str());
+  if(linkLanguage.empty())
     {
-    const std::string& linkLanguage =
-      this->Target->GetLinkerLanguage(configName.c_str());
-    if(linkLanguage.empty())
-      {
-      cmSystemTools::Error
-        ("CMake can not determine linker language for target: ",
-         this->Name.c_str());
-      return false;
-      }
-    if(linkLanguage == "C" || linkLanguage == "CXX"
-       || linkLanguage == "Fortran")
-      {
-      std::string baseFlagVar = "CMAKE_";
-      baseFlagVar += linkLanguage;
-      baseFlagVar += "_FLAGS";
-      flags = this->
-        Target->GetMakefile()->GetRequiredDefinition(baseFlagVar.c_str());
-      std::string flagVar = baseFlagVar + std::string("_") +
-        cmSystemTools::UpperCase(configName);
-      flags += " ";
-      flags += this->
-        Target->GetMakefile()->GetRequiredDefinition(flagVar.c_str());
-      }
-    // set the correct language
-    if(linkLanguage == "C")
-      {
-      flags += " /TC ";
-      }
-    if(linkLanguage == "CXX")
-      {
-      flags += " /TP ";
-      }
-    this->LocalGenerator->AddCompileOptions(flags, this->Target,
-                                            linkLanguage, configName.c_str());
+    cmSystemTools::Error
+      ("CMake can not determine linker language for target: ",
+       this->Name.c_str());
+    return false;
+    }
+  if(linkLanguage == "C" || linkLanguage == "CXX"
+     || linkLanguage == "Fortran")
+    {
+    std::string baseFlagVar = "CMAKE_";
+    baseFlagVar += linkLanguage;
+    baseFlagVar += "_FLAGS";
+    flags = this->
+      Target->GetMakefile()->GetRequiredDefinition(baseFlagVar.c_str());
+    std::string flagVar = baseFlagVar + std::string("_") +
+      cmSystemTools::UpperCase(configName);
+    flags += " ";
+    flags += this->
+      Target->GetMakefile()->GetRequiredDefinition(flagVar.c_str());
+    }
+  // set the correct language
+  if(linkLanguage == "C")
+    {
+    flags += " /TC ";
+    }
+  if(linkLanguage == "CXX")
+    {
+    flags += " /TP ";
     }
+  this->LocalGenerator->AddCompileOptions(flags, this->Target,
+                                          linkLanguage, configName.c_str());
 
   // Get preprocessor definitions for this directory.
   std::string defineFlags = this->Target->GetMakefile()->GetDefineFlags();

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eaa9f2f8eeaacb8df762efa5f7f95820aac06729
commit eaa9f2f8eeaacb8df762efa5f7f95820aac06729
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Jun 4 16:35:34 2014 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Jun 9 10:59:55 2014 -0400

    VS: Refactor internal generator factory logic
    
    Consume the space before the platform name as soon as possible
    instead of including it in the comparison.

diff --git a/Source/cmGlobalVisualStudio10Generator.cxx 
b/Source/cmGlobalVisualStudio10Generator.cxx
index 86d0de3..a6d1c31 100644
--- a/Source/cmGlobalVisualStudio10Generator.cxx
+++ b/Source/cmGlobalVisualStudio10Generator.cxx
@@ -48,17 +48,19 @@ public:
     const char* p = cmVS10GenName(name, genName);
     if(!p)
       { return 0; }
-    if(strcmp(p, "") == 0)
+    if(!*p)
       {
       return new cmGlobalVisualStudio10Generator(
         genName, "", "");
       }
-    if(strcmp(p, " Win64") == 0)
+    if(*p++ != ' ')
+      { return 0; }
+    if(strcmp(p, "Win64") == 0)
       {
       return new cmGlobalVisualStudio10Generator(
         genName, "x64", "CMAKE_FORCE_WIN64");
       }
-    if(strcmp(p, " IA64") == 0)
+    if(strcmp(p, "IA64") == 0)
       {
       return new cmGlobalVisualStudio10Generator(
         genName, "Itanium", "CMAKE_FORCE_IA64");
diff --git a/Source/cmGlobalVisualStudio11Generator.cxx 
b/Source/cmGlobalVisualStudio11Generator.cxx
index 7033f2a..fa134fc 100644
--- a/Source/cmGlobalVisualStudio11Generator.cxx
+++ b/Source/cmGlobalVisualStudio11Generator.cxx
@@ -43,27 +43,24 @@ public:
     const char* p = cmVS11GenName(name, genName);
     if(!p)
       { return 0; }
-    if(strcmp(p, "") == 0)
+    if(!*p)
       {
       return new cmGlobalVisualStudio11Generator(
         genName, "", "");
       }
-    if(strcmp(p, " Win64") == 0)
+    if(*p++ != ' ')
+      { return 0; }
+    if(strcmp(p, "Win64") == 0)
       {
       return new cmGlobalVisualStudio11Generator(
         genName, "x64", "CMAKE_FORCE_WIN64");
       }
-    if(strcmp(p, " ARM") == 0)
+    if(strcmp(p, "ARM") == 0)
       {
       return new cmGlobalVisualStudio11Generator(
         genName, "ARM", "");
       }
 
-    if(*p++ != ' ')
-      {
-      return 0;
-      }
-
     std::set<std::string> installedSDKs =
       cmGlobalVisualStudio11Generator::GetInstalledWindowsCESDKs();
 
diff --git a/Source/cmGlobalVisualStudio12Generator.cxx 
b/Source/cmGlobalVisualStudio12Generator.cxx
index 40f8b05..698624d 100644
--- a/Source/cmGlobalVisualStudio12Generator.cxx
+++ b/Source/cmGlobalVisualStudio12Generator.cxx
@@ -43,17 +43,19 @@ public:
     const char* p = cmVS12GenName(name, genName);
     if(!p)
       { return 0; }
-    if(strcmp(p, "") == 0)
+    if(!*p)
       {
       return new cmGlobalVisualStudio12Generator(
         genName, "", "");
       }
-    if(strcmp(p, " Win64") == 0)
+    if(*p++ != ' ')
+      { return 0; }
+    if(strcmp(p, "Win64") == 0)
       {
       return new cmGlobalVisualStudio12Generator(
         genName, "x64", "CMAKE_FORCE_WIN64");
       }
-    if(strcmp(p, " ARM") == 0)
+    if(strcmp(p, "ARM") == 0)
       {
       return new cmGlobalVisualStudio12Generator(
         genName, "ARM", "");

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2b3e7b6f943d525cd02c13daacd596f17d100fd4
commit 2b3e7b6f943d525cd02c13daacd596f17d100fd4
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Jun 4 15:51:08 2014 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Jun 9 10:59:53 2014 -0400

    VS: Fix vcxproj specification of empty output file extension
    
    When a binary output file is to have no extension, the TargetExt
    element in the vcxproj cannot be left empty because VS will choose
    a default extension.  Instead use "." because the Windows filesystem
    will treat that as an empty extension.

diff --git a/Source/cmVisualStudio10TargetGenerator.cxx 
b/Source/cmVisualStudio10TargetGenerator.cxx
index 12f60eb..453e983 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -1277,6 +1277,12 @@ void 
cmVisualStudio10TargetGenerator::WritePathAndIncrementalLinkOptions()
 
       std::string ext =
         cmSystemTools::GetFilenameLastExtension(targetNameFull);
+      if(ext.empty())
+        {
+        // An empty TargetExt causes a default extension to be used.
+        // A single "." appears to be treated as an empty extension.
+        ext = ".";
+        }
       this->WritePlatformConfigTag("TargetExt", config->c_str(), 3);
       *this->BuildFileStream << cmVS10EscapeXML(ext) << "</TargetExt>\n";
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=39af06e7f78863861ba7f8e85c511fb557412ff0
commit 39af06e7f78863861ba7f8e85c511fb557412ff0
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Jun 4 15:29:46 2014 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Jun 9 10:59:51 2014 -0400

    VS: Fix vcxproj elements specifying binary output locations
    
    Fix generation of OutDir, IntDir, TargetName, and TargetExt element
    values to encode the values for XML.

diff --git a/Source/cmVisualStudio10TargetGenerator.cxx 
b/Source/cmVisualStudio10TargetGenerator.cxx
index 5dad67d..12f60eb 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -1263,23 +1263,22 @@ void 
cmVisualStudio10TargetGenerator::WritePathAndIncrementalLinkOptions()
       this->ConvertToWindowsSlash(outDir);
 
       this->WritePlatformConfigTag("OutDir", config->c_str(), 3);
-      *this->BuildFileStream << outDir
+      *this->BuildFileStream << cmVS10EscapeXML(outDir)
                              << "</OutDir>\n";
 
       this->WritePlatformConfigTag("IntDir", config->c_str(), 3);
-      *this->BuildFileStream << intermediateDir
+      *this->BuildFileStream << cmVS10EscapeXML(intermediateDir)
                              << "</IntDir>\n";
 
+      std::string name =
+        cmSystemTools::GetFilenameWithoutLastExtension(targetNameFull);
       this->WritePlatformConfigTag("TargetName", config->c_str(), 3);
-      *this->BuildFileStream
-        << cmSystemTools::GetFilenameWithoutLastExtension(
-             targetNameFull.c_str())
-        << "</TargetName>\n";
+      *this->BuildFileStream << cmVS10EscapeXML(name) << "</TargetName>\n";
 
+      std::string ext =
+        cmSystemTools::GetFilenameLastExtension(targetNameFull);
       this->WritePlatformConfigTag("TargetExt", config->c_str(), 3);
-      *this->BuildFileStream
-        << cmSystemTools::GetFilenameLastExtension(targetNameFull.c_str())
-        << "</TargetExt>\n";
+      *this->BuildFileStream << cmVS10EscapeXML(ext) << "</TargetExt>\n";
 
       this->OutputLinkIncremental(*config);
       }

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ee329d543c558a2064edc805b08f337bd31ab1fd
commit ee329d543c558a2064edc805b08f337bd31ab1fd
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Jun 3 13:34:21 2014 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Jun 9 10:59:48 2014 -0400

    VS: Refactor flag table lookup
    
    In cmVisualStudio10TargetGenerator, convert the static functions
    currently used to lookup the flag table for each tool into class
    methods.  This avoids passing the this->LocalGenerator member and
    gives the methods access to other information that may be useful
    in the future.

diff --git a/Source/cmVisualStudio10TargetGenerator.cxx 
b/Source/cmVisualStudio10TargetGenerator.cxx
index 72bb020..5dad67d 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -32,34 +32,37 @@
 
 #include <cmsys/auto_ptr.hxx>
 
-static cmVS7FlagTable const*
-cmVSGetCLFlagTable(cmLocalVisualStudioGenerator* lg)
+cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetClFlagTable() const
 {
-  if(lg->GetVersion() >= cmLocalVisualStudioGenerator::VS12)
+  cmLocalVisualStudioGenerator::VSVersion
+    v = this->LocalGenerator->GetVersion();
+  if(v >= cmLocalVisualStudioGenerator::VS12)
     { return cmVS12CLFlagTable; }
-  else if(lg->GetVersion() == cmLocalVisualStudioGenerator::VS11)
+  else if(v == cmLocalVisualStudioGenerator::VS11)
     { return cmVS11CLFlagTable; }
   else
     { return cmVS10CLFlagTable; }
 }
 
-static cmVS7FlagTable const*
-cmVSGetLibFlagTable(cmLocalVisualStudioGenerator* lg)
+cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetLibFlagTable() const
 {
-  if(lg->GetVersion() >= cmLocalVisualStudioGenerator::VS12)
+  cmLocalVisualStudioGenerator::VSVersion
+    v = this->LocalGenerator->GetVersion();
+  if(v >= cmLocalVisualStudioGenerator::VS12)
     { return cmVS12LibFlagTable; }
-  else if(lg->GetVersion() == cmLocalVisualStudioGenerator::VS11)
+  else if(v == cmLocalVisualStudioGenerator::VS11)
     { return cmVS11LibFlagTable; }
   else
     { return cmVS10LibFlagTable; }
 }
 
-static cmVS7FlagTable const*
-cmVSGetLinkFlagTable(cmLocalVisualStudioGenerator* lg)
+cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetLinkFlagTable() const
 {
-  if(lg->GetVersion() >= cmLocalVisualStudioGenerator::VS12)
+  cmLocalVisualStudioGenerator::VSVersion
+    v = this->LocalGenerator->GetVersion();
+  if(v >= cmLocalVisualStudioGenerator::VS12)
     { return cmVS12LinkFlagTable; }
-  else if(lg->GetVersion() == cmLocalVisualStudioGenerator::VS11)
+  else if(v == cmLocalVisualStudioGenerator::VS11)
     { return cmVS11LinkFlagTable; }
   else
     { return cmVS10LinkFlagTable; }
@@ -1198,7 +1201,7 @@ bool 
cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags(
       cmVisualStudioGeneratorOptions
         clOptions(this->LocalGenerator,
                   cmVisualStudioGeneratorOptions::Compiler,
-                  cmVSGetCLFlagTable(this->LocalGenerator), 0, this);
+                  this->GetClFlagTable(), 0, this);
       clOptions.Parse(flags.c_str());
       clOptions.AddDefines(configDefines.c_str());
       clOptions.SetConfiguration((*config).c_str());
@@ -1355,7 +1358,7 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions(
 
   cmsys::auto_ptr<Options> pOptions(
     new Options(this->LocalGenerator, Options::Compiler,
-                cmVSGetCLFlagTable(this->LocalGenerator)));
+                this->GetClFlagTable()));
   Options& clOptions = *pOptions;
 
   std::string flags;
@@ -1508,7 +1511,7 @@ 
cmVisualStudio10TargetGenerator::WriteLibOptions(std::string const& config)
     cmVisualStudioGeneratorOptions
       libOptions(this->LocalGenerator,
                  cmVisualStudioGeneratorOptions::Linker,
-                 cmVSGetLibFlagTable(this->LocalGenerator), 0, this);
+                 this->GetLibFlagTable(), 0, this);
     libOptions.Parse(libflags.c_str());
     libOptions.OutputAdditionalOptions(*this->BuildFileStream, "      ", "");
     libOptions.OutputFlagMap(*this->BuildFileStream, "      ");
@@ -1543,7 +1546,7 @@ 
cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
 {
   cmsys::auto_ptr<Options> pOptions(
     new Options(this->LocalGenerator, Options::Linker,
-                cmVSGetLinkFlagTable(this->LocalGenerator), 0, this));
+                this->GetLinkFlagTable(), 0, this));
   Options& linkOptions = *pOptions;
 
   const std::string& linkLanguage =
diff --git a/Source/cmVisualStudio10TargetGenerator.h 
b/Source/cmVisualStudio10TargetGenerator.h
index d72c6fd..67a2488 100644
--- a/Source/cmVisualStudio10TargetGenerator.h
+++ b/Source/cmVisualStudio10TargetGenerator.h
@@ -23,6 +23,7 @@ class cmCustomCommand;
 class cmLocalVisualStudio7Generator;
 class cmComputeLinkInformation;
 class cmVisualStudioGeneratorOptions;
+struct cmIDEFlagTable;
 #include "cmSourceGroup.h"
 
 class cmVisualStudio10TargetGenerator
@@ -98,6 +99,10 @@ private:
                               const std::vector<cmSourceGroup>& allGroups);
   bool IsResxHeader(const std::string& headerFile);
 
+  cmIDEFlagTable const* GetClFlagTable() const;
+  cmIDEFlagTable const* GetLibFlagTable() const;
+  cmIDEFlagTable const* GetLinkFlagTable() const;
+
 private:
   typedef cmVisualStudioGeneratorOptions Options;
   typedef std::map<std::string, Options*> OptionsMap;

-----------------------------------------------------------------------

Summary of changes:
 Source/cmGlobalVisualStudio10Generator.cxx |    8 +-
 Source/cmGlobalVisualStudio11Generator.cxx |   13 +-
 Source/cmGlobalVisualStudio12Generator.cxx |    8 +-
 Source/cmVisualStudio10TargetGenerator.cxx |  294 +++++++++++++++-------------
 Source/cmVisualStudio10TargetGenerator.h   |    6 +
 5 files changed, 176 insertions(+), 153 deletions(-)


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits

Reply via email to