ENH: fix adding of rc files

This commit is contained in:
Bill Hoffman 2005-03-22 07:26:45 -05:00
parent 56c0b62095
commit c2ad3e4afc

View File

@ -37,6 +37,9 @@ void cmLocalVisualStudio7Generator::Generate()
std::set<cmStdString> lang; std::set<cmStdString> lang;
lang.insert("C"); lang.insert("C");
lang.insert("CXX"); lang.insert("CXX");
lang.insert("RC");
lang.insert("IDL");
lang.insert("DEF");
this->CreateCustomTargetsAndCommands(lang); this->CreateCustomTargetsAndCommands(lang);
this->OutputVCProjFile(); this->OutputVCProjFile();
} }
@ -343,24 +346,27 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
target.GetName()); target.GetName());
return; return;
} }
std::string baseFlagVar = "CMAKE_"; if(!(strcmp(linkLanguage, "RC") == 0 || strcmp(linkLanguage, "DEF") == 0))
baseFlagVar += linkLanguage; {
baseFlagVar += "_FLAGS"; std::string baseFlagVar = "CMAKE_";
flags = m_Makefile->GetRequiredDefinition(baseFlagVar.c_str()); baseFlagVar += linkLanguage;
baseFlagVar += "_FLAGS";
std::string flagVar = baseFlagVar + "_RELEASE"; flags = m_Makefile->GetRequiredDefinition(baseFlagVar.c_str());
flagsRelease += m_Makefile->GetRequiredDefinition(flagVar.c_str());
std::string flagVar = baseFlagVar + "_RELEASE";
flagVar = baseFlagVar + "_MINSIZEREL"; flagsRelease += m_Makefile->GetRequiredDefinition(flagVar.c_str());
flagsMinSize += m_Makefile->GetRequiredDefinition(flagVar.c_str());
flagVar = baseFlagVar + "_MINSIZEREL";
flagVar = baseFlagVar + "_DEBUG"; flagsMinSize += m_Makefile->GetRequiredDefinition(flagVar.c_str());
flagsDebug += m_Makefile->GetRequiredDefinition(flagVar.c_str());
flagVar = baseFlagVar + "_DEBUG";
flagVar = baseFlagVar + "_RELWITHDEBINFO"; flagsDebug += m_Makefile->GetRequiredDefinition(flagVar.c_str());
flagsDebugRel += m_Makefile->GetRequiredDefinition(flagVar.c_str());
flagVar = baseFlagVar + "_RELWITHDEBINFO";
flagsDebugRel += m_Makefile->GetRequiredDefinition(flagVar.c_str());
}
} }
std::string programDatabase; std::string programDatabase;
const char* pre = "WIN32,_DEBUG,_WINDOWS"; const char* pre = "WIN32,_DEBUG,_WINDOWS";
std::string debugPostfix = ""; std::string debugPostfix = "";
@ -1037,10 +1043,20 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout,
else if(compileFlags.size() || additionalDeps.length()) else if(compileFlags.size() || additionalDeps.length())
{ {
const char* aCompilerTool = "VCCLCompilerTool"; const char* aCompilerTool = "VCCLCompilerTool";
if((*sf)->GetSourceExtension() == "idl") std::string ext = (*sf)->GetSourceExtension();
ext = cmSystemTools::LowerCase(ext);
if(ext == "idl")
{ {
aCompilerTool = "VCMIDLTool"; aCompilerTool = "VCMIDLTool";
} }
if(ext == "rc")
{
aCompilerTool = "VCResourceCompilerTool";
}
if(ext == "def")
{
aCompilerTool = "VCCustomBuildTool";
}
for(std::vector<std::string>::iterator i = configs->begin(); for(std::vector<std::string>::iterator i = configs->begin();
i != configs->end(); ++i) i != configs->end(); ++i)
{ {