瀏覽代碼

VS10: Use expected values for UseOfMfc (#11213)

Use expected values for the UseOfMfc xml element in
VS 10 .vcxproj files.

  CMAKE_MFC_FLAG=1 maps to "Static"
  CMAKE_MFC_FLAG=2 maps to "Dynamic"
  all other values map to "false"

Thanks to Randy Schott and McBen for their patches which
served as inspiration and motivation for getting this done.

See also http://public.kitware.com/Bug/view.php?id=11224
David Cole 14 年之前
父節點
當前提交
011694c269
共有 1 個文件被更改,包括 12 次插入4 次删除
  1. 12 4
      Source/cmVisualStudio10TargetGenerator.cxx

+ 12 - 4
Source/cmVisualStudio10TargetGenerator.cxx

@@ -290,16 +290,24 @@ void cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues()
       }
     configType += "</ConfigurationType>\n";
     this->WriteString(configType.c_str(), 2); 
+
     const char* mfcFlag = 
       this->Target->GetMakefile()->GetDefinition("CMAKE_MFC_FLAG");
-    if(mfcFlag)
+    std::string mfcFlagValue = mfcFlag ? mfcFlag : "0";
+
+    std::string useOfMfcValue = "false";
+    if(mfcFlagValue == "1")
       {
-      this->WriteString("<UseOfMfc>true</UseOfMfc>\n", 2);
+      useOfMfcValue = "Static";
       }
-    else
+    else if(mfcFlagValue == "2")
       {
-      this->WriteString("<UseOfMfc>false</UseOfMfc>\n", 2);
+      useOfMfcValue = "Dynamic";
       }
+    std::string mfcLine = "<UseOfMfc>";
+    mfcLine += useOfMfcValue + "</UseOfMfc>\n";
+    this->WriteString(mfcLine.c_str(), 2);
+
     if(this->Target->GetType() <= cmTarget::MODULE_LIBRARY &&
        this->ClOptions[*i]->UsingUnicode())
       {