[Cmake-commits] CMake branch, next, updated. v3.5.0-rc3-357-g19cba30

Brad King brad.king at kitware.com
Tue Mar 8 08:41:37 EST 2016


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  19cba3016550ddd889534d472bd8554b7660b76d (commit)
       via  3aa6fea69c0bd1614e13a67eb23ca033c0fe1795 (commit)
      from  8139e184c3eb77d9770c109343a55e34e903ec06 (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 -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=19cba3016550ddd889534d472bd8554b7660b76d
commit 19cba3016550ddd889534d472bd8554b7660b76d
Merge: 8139e18 3aa6fea
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Mar 8 08:41:35 2016 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Mar 8 08:41:35 2016 -0500

    Merge topic 'vs14-debug-enum-older-toolsets' into next
    
    3aa6fea6 VS: Fix VS 2015 .vcxproj debug setting for older toolsets (#15986)


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3aa6fea69c0bd1614e13a67eb23ca033c0fe1795
commit 3aa6fea69c0bd1614e13a67eb23ca033c0fe1795
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Feb 24 12:15:48 2016 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Mar 7 10:09:09 2016 -0500

    VS: Fix VS 2015 .vcxproj debug setting for older toolsets (#15986)
    
    Since commit v3.4.2~2^2 (VS: Fix VS 2015 .vcxproj file value for
    GenerateDebugInformation, 2016-01-08) we generate invalid project
    files for the v110 and v120 toolsets.  VS complains:
    
        C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(639,9):
        error MSB4030: "Debug" is an invalid value for the "GenerateDebugInformation" parameter of
        the "Link" task. The "GenerateDebugInformation" parameter is of type "System.Boolean".
    
    This reveals that our VS flag map selection should be based on the
    toolset instead of the version of VS.  However, that will be a
    non-trivial change so for now fix this particular use case by
    hard-coding a correction to the flag map.
    
    Reported-by: Gregor Jasny <gjasny at googlemail.com>

diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 6b46773..c9c09fd 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -2661,6 +2661,34 @@ cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
       }
     }
 
+  // Hack to fix flag version selection in a common use case.
+  // FIXME: Select flag table based on toolset instead of VS version.
+  if (this->LocalGenerator->GetVersion() >=
+      cmGlobalVisualStudioGenerator::VS14)
+    {
+    cmGlobalVisualStudio10Generator* gg =
+      static_cast<cmGlobalVisualStudio10Generator*>(this->GlobalGenerator);
+    const char* toolset = gg->GetPlatformToolset();
+    if (toolset &&
+        (cmHasLiteralPrefix(toolset, "v100") ||
+         cmHasLiteralPrefix(toolset, "v110") ||
+         cmHasLiteralPrefix(toolset, "v120")))
+      {
+      if (const char* debug = linkOptions.GetFlag("GenerateDebugInformation"))
+        {
+        // Convert value from enumeration back to boolean for older toolsets.
+        if (strcmp(debug, "No") == 0)
+          {
+          linkOptions.AddFlag("GenerateDebugInformation", "false");
+          }
+        else if (strcmp(debug, "Debug") == 0)
+          {
+          linkOptions.AddFlag("GenerateDebugInformation", "true");
+          }
+        }
+      }
+    }
+
   this->LinkOptions[config] = pOptions.release();
   return true;
 }

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list