ENH: Added better error message when TRY_COMPILE does not recognize an extension.
This commit is contained in:
parent
bf70e83397
commit
925743e1e7
@ -145,27 +145,30 @@ int cmTryCompileCommand::CoreTryCompileCode(
|
|||||||
cmSystemTools::ReportLastSystemError("");
|
cmSystemTools::ReportLastSystemError("");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string source = argv[2];
|
std::string source = argv[2];
|
||||||
const char* lang = mf->GetCMakeInstance()->GetGlobalGenerator()->GetLanguageFromExtension(
|
std::string ext = cmSystemTools::GetFilenameExtension(source);
|
||||||
cmSystemTools::GetFilenameExtension(source).c_str());
|
const char* lang = (mf->GetCMakeInstance()->GetGlobalGenerator()
|
||||||
|
->GetLanguageFromExtension(ext.c_str()));
|
||||||
if(lang)
|
if(lang)
|
||||||
{
|
{
|
||||||
fprintf(fout, "PROJECT(CMAKE_TRY_COMPILE %s)\n", lang);
|
fprintf(fout, "PROJECT(CMAKE_TRY_COMPILE %s)\n", lang);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
cmOStringStream err;
|
||||||
|
err << "Unknown extension \"" << ext << "\" for file \""
|
||||||
|
<< source << "\". TRY_COMPILE only works for enabled languages.\n"
|
||||||
|
<< "Currently enabled languages are:";
|
||||||
std::vector<std::string> langs;
|
std::vector<std::string> langs;
|
||||||
mf->GetCMakeInstance()->GetGlobalGenerator()->GetEnabledLanguages(langs);
|
mf->GetCMakeInstance()->GetGlobalGenerator()->GetEnabledLanguages(langs);
|
||||||
std::string msg = "TRY_COMPILE only works for enabled languages files,"
|
|
||||||
"\nCurrently enabled languages are:\n";
|
|
||||||
for(std::vector<std::string>::iterator l = langs.begin();
|
for(std::vector<std::string>::iterator l = langs.begin();
|
||||||
l != langs.end(); ++l)
|
l != langs.end(); ++l)
|
||||||
{
|
{
|
||||||
msg += *l;
|
err << " " << *l;
|
||||||
msg += " ";
|
|
||||||
}
|
}
|
||||||
cmSystemTools::Error("Unknown file format for file: ", source.c_str(), msg.c_str());
|
err << "\nSee PROJECT command for help enabling other languages.";
|
||||||
|
cmSystemTools::Error(err.str().c_str());
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
std::string langFlags = "CMAKE_";
|
std::string langFlags = "CMAKE_";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user