Validate custom command arguments (#11963)

Reject quoted commands immediately with an error message instead of
allowing a later assertion failure.
This commit is contained in:
Brad King 2011-03-14 17:47:31 -04:00
parent d5d661d2b2
commit 339d5922d9

View File

@ -893,6 +893,20 @@ cmMakefile::AddCustomCommandToOutput(const std::vector<std::string>& outputs,
return;
}
// Validate custom commands. TODO: More strict?
for(cmCustomCommandLines::const_iterator i=commandLines.begin();
i != commandLines.end(); ++i)
{
cmCustomCommandLine const& cl = *i;
if(!cl.empty() && !cl[0].empty() && cl[0][0] == '"')
{
cmOStringStream e;
e << "COMMAND may not contain literal quotes:\n " << cl[0] << "\n";
this->IssueMessage(cmake::FATAL_ERROR, e.str());
return;
}
}
// Choose a source file on which to store the custom command.
cmSourceFile* file = 0;
if(main_dependency && main_dependency[0])