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.
This commit is contained in:
parent
808f4b1fa4
commit
1edaef39f1
|
@ -467,8 +467,6 @@ void cmVisualStudio10TargetGenerator::WriteProjectConfigurations()
|
||||||
|
|
||||||
void cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues()
|
void cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues()
|
||||||
{
|
{
|
||||||
cmGlobalVisualStudio10Generator* gg =
|
|
||||||
static_cast<cmGlobalVisualStudio10Generator*>(this->GlobalGenerator);
|
|
||||||
std::vector<std::string> *configs =
|
std::vector<std::string> *configs =
|
||||||
static_cast<cmGlobalVisualStudio7Generator *>
|
static_cast<cmGlobalVisualStudio7Generator *>
|
||||||
(this->GlobalGenerator)->GetConfigurations();
|
(this->GlobalGenerator)->GetConfigurations();
|
||||||
|
@ -503,55 +501,64 @@ void cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues()
|
||||||
configType += "</ConfigurationType>\n";
|
configType += "</ConfigurationType>\n";
|
||||||
this->WriteString(configType.c_str(), 2);
|
this->WriteString(configType.c_str(), 2);
|
||||||
|
|
||||||
const char* mfcFlag =
|
this->WriteMSToolConfigurationValues(*i);
|
||||||
this->Target->GetMakefile()->GetDefinition("CMAKE_MFC_FLAG");
|
|
||||||
std::string mfcFlagValue = mfcFlag ? mfcFlag : "0";
|
|
||||||
|
|
||||||
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[*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);
|
|
||||||
}
|
|
||||||
|
|
||||||
this->WriteString("</PropertyGroup>\n", 1);
|
this->WriteString("</PropertyGroup>\n", 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
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";
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void cmVisualStudio10TargetGenerator::WriteCustomCommands()
|
void cmVisualStudio10TargetGenerator::WriteCustomCommands()
|
||||||
{
|
{
|
||||||
this->SourcesVisited.clear();
|
this->SourcesVisited.clear();
|
||||||
|
|
|
@ -56,6 +56,7 @@ private:
|
||||||
void WriteString(const char* line, int indentLevel);
|
void WriteString(const char* line, int indentLevel);
|
||||||
void WriteProjectConfigurations();
|
void WriteProjectConfigurations();
|
||||||
void WriteProjectConfigurationValues();
|
void WriteProjectConfigurationValues();
|
||||||
|
void WriteMSToolConfigurationValues(std::string const& config);
|
||||||
void WriteSource(const char* tool, cmSourceFile const* sf,
|
void WriteSource(const char* tool, cmSourceFile const* sf,
|
||||||
const char* end = 0);
|
const char* end = 0);
|
||||||
void WriteSources(const char* tool,
|
void WriteSources(const char* tool,
|
||||||
|
|
Loading…
Reference in New Issue