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
This commit is contained in:
David Cole 2011-11-04 13:29:41 -04:00
parent a2e6d2482e
commit 011694c269
1 changed files with 12 additions and 4 deletions

View File

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