1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-18 17:31:57 +08:00

ENH: New format for warning and error messages

- Add cmMakefile methods IssueError and IssueWarning
  - Maintain an explicit call stack in cmMakefile
  - Include context/call-stack info in messages
  - Nested errors now unwind the call stack
  - Use new mechanism for policy warnings and errors
  - Improve policy error message
  - Include cmExecutionStatus pointer in call stack
    so that errors deeper in the C++ stack under
    a command invocation will become errors for the
    command
This commit is contained in:
Brad King
2008-03-07 08:40:36 -05:00
parent 41a59e211e
commit 680104a490
9 changed files with 234 additions and 109 deletions

View File

@@ -18,7 +18,8 @@
// cmAddCustomTargetCommand
bool cmAddCustomTargetCommand
::InitialPass(std::vector<std::string> const& args, cmExecutionStatus &)
::InitialPass(std::vector<std::string> const& args,
cmExecutionStatus& status)
{
// This enum must be before an enum is used in a switch statment.
// If not there is an ICE on the itanium version of gcc we are running
@@ -45,9 +46,9 @@ bool cmAddCustomTargetCommand
switch (this->Makefile->GetPolicyStatus(cmPolicies::CMP_0001))
{
case cmPolicies::WARN:
cmSystemTools::Message(
this->Makefile->IssueWarning(
this->Makefile->GetPolicies()->GetPolicyWarning
(cmPolicies::CMP_0001).c_str(),"Warning");
(cmPolicies::CMP_0001));
case cmPolicies::OLD:
// if (this->Makefile->IsBWCompatibilityLessThan(2,2))
// {
@@ -60,10 +61,11 @@ bool cmAddCustomTargetCommand
return false;
case cmPolicies::REQUIRED_IF_USED:
case cmPolicies::REQUIRED_ALWAYS:
this->SetError(
this->Makefile->IssueError(
this->Makefile->GetPolicies()->GetRequiredPolicyError
(cmPolicies::CMP_0001).c_str());
return false;
(cmPolicies::CMP_0001).c_str()
);
return false;
}
}