From c2ad3e4afc271bea59c98562b4695232d399714f Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Tue, 22 Mar 2005 07:26:45 -0500 Subject: ENH: fix adding of rc files --- Source/cmLocalVisualStudio7Generator.cxx | 52 +++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 4fa4497..6e64b1b 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -37,6 +37,9 @@ void cmLocalVisualStudio7Generator::Generate() std::set lang; lang.insert("C"); lang.insert("CXX"); + lang.insert("RC"); + lang.insert("IDL"); + lang.insert("DEF"); this->CreateCustomTargetsAndCommands(lang); this->OutputVCProjFile(); } @@ -343,24 +346,27 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout, target.GetName()); return; } - std::string baseFlagVar = "CMAKE_"; - baseFlagVar += linkLanguage; - baseFlagVar += "_FLAGS"; - flags = m_Makefile->GetRequiredDefinition(baseFlagVar.c_str()); - - std::string flagVar = baseFlagVar + "_RELEASE"; - flagsRelease += m_Makefile->GetRequiredDefinition(flagVar.c_str()); - - flagVar = baseFlagVar + "_MINSIZEREL"; - flagsMinSize += m_Makefile->GetRequiredDefinition(flagVar.c_str()); - - flagVar = baseFlagVar + "_DEBUG"; - flagsDebug += m_Makefile->GetRequiredDefinition(flagVar.c_str()); - - flagVar = baseFlagVar + "_RELWITHDEBINFO"; - flagsDebugRel += m_Makefile->GetRequiredDefinition(flagVar.c_str()); + if(!(strcmp(linkLanguage, "RC") == 0 || strcmp(linkLanguage, "DEF") == 0)) + { + std::string baseFlagVar = "CMAKE_"; + baseFlagVar += linkLanguage; + baseFlagVar += "_FLAGS"; + flags = m_Makefile->GetRequiredDefinition(baseFlagVar.c_str()); + + std::string flagVar = baseFlagVar + "_RELEASE"; + flagsRelease += m_Makefile->GetRequiredDefinition(flagVar.c_str()); + + flagVar = baseFlagVar + "_MINSIZEREL"; + flagsMinSize += m_Makefile->GetRequiredDefinition(flagVar.c_str()); + + flagVar = baseFlagVar + "_DEBUG"; + flagsDebug += m_Makefile->GetRequiredDefinition(flagVar.c_str()); + + flagVar = baseFlagVar + "_RELWITHDEBINFO"; + flagsDebugRel += m_Makefile->GetRequiredDefinition(flagVar.c_str()); + } } - + std::string programDatabase; const char* pre = "WIN32,_DEBUG,_WINDOWS"; std::string debugPostfix = ""; @@ -1037,10 +1043,20 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout, else if(compileFlags.size() || additionalDeps.length()) { const char* aCompilerTool = "VCCLCompilerTool"; - if((*sf)->GetSourceExtension() == "idl") + std::string ext = (*sf)->GetSourceExtension(); + ext = cmSystemTools::LowerCase(ext); + if(ext == "idl") { aCompilerTool = "VCMIDLTool"; } + if(ext == "rc") + { + aCompilerTool = "VCResourceCompilerTool"; + } + if(ext == "def") + { + aCompilerTool = "VCCustomBuildTool"; + } for(std::vector::iterator i = configs->begin(); i != configs->end(); ++i) { -- cgit v0.12