cmMakefile: Port nested error logic away from cmExecutionStatus
It is no longer needed.
This commit is contained in:
parent
2af853deb5
commit
14a8d61fd4
|
@ -38,16 +38,12 @@ public:
|
|||
this->ReturnInvoked = false;
|
||||
this->BreakInvoked = false;
|
||||
this->ContinueInvoked = false;
|
||||
this->NestedError = false;
|
||||
}
|
||||
void SetNestedError(bool val) { this->NestedError = val; }
|
||||
bool GetNestedError() { return this->NestedError; }
|
||||
|
||||
private:
|
||||
bool ReturnInvoked;
|
||||
bool BreakInvoked;
|
||||
bool ContinueInvoked;
|
||||
bool NestedError;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -76,7 +76,7 @@ public:
|
|||
};
|
||||
|
||||
bool cmFunctionHelperCommand::InvokeInitialPass(
|
||||
const std::vector<cmListFileArgument>& args, cmExecutionStatus& inStatus)
|
||||
const std::vector<cmListFileArgument>& args, cmExecutionStatus&)
|
||||
{
|
||||
// Expand the argument list to the function.
|
||||
std::vector<std::string> expandedArgs;
|
||||
|
@ -129,11 +129,11 @@ bool cmFunctionHelperCommand::InvokeInitialPass(
|
|||
for (unsigned int c = 0; c < this->Functions.size(); ++c) {
|
||||
cmExecutionStatus status;
|
||||
if (!this->Makefile->ExecuteCommand(this->Functions[c], status) ||
|
||||
status.GetNestedError()) {
|
||||
(cmSystemTools::GetErrorOccuredFlag() &&
|
||||
!cmSystemTools::GetFatalErrorOccured())) {
|
||||
// The error message should have already included the call stack
|
||||
// so we do not need to report an error here.
|
||||
functionScope.Quiet();
|
||||
inStatus.SetNestedError(true);
|
||||
return false;
|
||||
}
|
||||
if (status.GetReturnInvoked()) {
|
||||
|
|
|
@ -159,11 +159,11 @@ bool cmMacroHelperCommand::InvokeInitialPass(
|
|||
}
|
||||
cmExecutionStatus status;
|
||||
if (!this->Makefile->ExecuteCommand(newLFF, status) ||
|
||||
status.GetNestedError()) {
|
||||
(cmSystemTools::GetErrorOccuredFlag() &&
|
||||
!cmSystemTools::GetFatalErrorOccured())) {
|
||||
// The error message should have already included the call stack
|
||||
// so we do not need to report an error here.
|
||||
macroScope.Quiet();
|
||||
inStatus.SetNestedError(true);
|
||||
return false;
|
||||
}
|
||||
if (status.GetReturnInvoked()) {
|
||||
|
|
|
@ -115,10 +115,6 @@ cmMakefile::~cmMakefile()
|
|||
void cmMakefile::IssueMessage(cmake::MessageType t,
|
||||
std::string const& text) const
|
||||
{
|
||||
assert(!this->ExecutionStatusStack.empty());
|
||||
if ((t == cmake::FATAL_ERROR) || (t == cmake::INTERNAL_ERROR)) {
|
||||
this->ExecutionStatusStack.back()->SetNestedError(true);
|
||||
}
|
||||
this->GetCMakeInstance()->IssueMessage(t, text, this->GetBacktrace());
|
||||
}
|
||||
|
||||
|
@ -279,11 +275,19 @@ bool cmMakefile::ExecuteCommand(const cmListFileFunction& lff,
|
|||
if (this->GetCMakeInstance()->GetTrace()) {
|
||||
this->PrintCommandTrace(lff);
|
||||
}
|
||||
// Try invoking the command.
|
||||
|
||||
bool hadPreviousNonFatalError = cmSystemTools::GetErrorOccuredFlag() &&
|
||||
!cmSystemTools::GetFatalErrorOccured();
|
||||
cmSystemTools::ResetErrorOccuredFlag();
|
||||
|
||||
bool invokeSucceeded = pcmd->InvokeInitialPass(lff.Arguments, status);
|
||||
bool hadNestedError = status.GetNestedError();
|
||||
bool hadNestedError = cmSystemTools::GetErrorOccuredFlag() &&
|
||||
!cmSystemTools::GetFatalErrorOccured();
|
||||
if (hadPreviousNonFatalError) {
|
||||
cmSystemTools::SetErrorOccured();
|
||||
}
|
||||
if (!invokeSucceeded || hadNestedError) {
|
||||
if (!hadNestedError) {
|
||||
if (!hadNestedError && !cmSystemTools::GetFatalErrorOccured()) {
|
||||
// The command invocation requested that we report an error.
|
||||
this->IssueMessage(cmake::FATAL_ERROR, pcmd->GetError());
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue