Ninja: find mingw's resource compiler

This commit is contained in:
Peter Kuemmel 2012-06-06 13:02:30 +02:00
parent c60557e973
commit e3a1f727f7
1 changed files with 20 additions and 10 deletions

View File

@ -434,16 +434,19 @@ void cmGlobalNinjaGenerator
cmMakefile *mf, cmMakefile *mf,
bool optional) bool optional)
{ {
this->cmGlobalGenerator::EnableLanguage(languages, mf, optional);
std::string path; std::string path;
for(std::vector<std::string>::const_iterator l = languages.begin(); for(std::vector<std::string>::const_iterator l = languages.begin();
l != languages.end(); ++l) l != languages.end(); ++l)
{ {
std::vector<std::string> language;
language.push_back(*l);
if(*l == "NONE") if(*l == "NONE")
{ {
this->cmGlobalGenerator::EnableLanguage(language, mf, optional);
continue; continue;
} }
if(*l == "Fortran") else if(*l == "Fortran")
{ {
std::string message = "The \""; std::string message = "The \"";
message += this->GetName(); message += this->GetName();
@ -452,14 +455,21 @@ void cmGlobalNinjaGenerator
message += "\" yet."; message += "\" yet.";
cmSystemTools::Error(message.c_str()); cmSystemTools::Error(message.c_str());
} }
this->ResolveLanguageCompiler(*l, mf, optional); else if(*l == "RC")
} {
// check if mingw is used
// check for mingw
const char* cc = mf->GetDefinition("CMAKE_C_COMPILER"); const char* cc = mf->GetDefinition("CMAKE_C_COMPILER");
if(cc && std::string(cc).find("gcc.exe") != std::string::npos) if(cc && std::string(cc).find("gcc.exe") != std::string::npos)
{ {
UsingMinGW = true; UsingMinGW = true;
std::string rc = cmSystemTools::FindProgram("windres");
if(rc.empty())
rc = "windres.exe";;
mf->AddDefinition("CMAKE_RC_COMPILER", rc.c_str());
}
}
this->cmGlobalGenerator::EnableLanguage(language, mf, optional);
this->ResolveLanguageCompiler(*l, mf, optional);
} }
} }