Browse Source

BUG: Fix message(SEND_ERROR) to continue

During testing of the new message() signatures I mistakenly concluded
that SEND_ERROR stops processing.  The corresponding commit enforced
this wrong behavior.  This restores the correct behavior and fixes the
documentation accordingly.
Brad King 16 years ago
parent
commit
b04c37c700
2 changed files with 13 additions and 2 deletions
  1. 12 1
      Source/cmMessageCommand.cxx
  2. 1 1
      Source/cmMessageCommand.h

+ 12 - 1
Source/cmMessageCommand.cxx

@@ -30,11 +30,18 @@ bool cmMessageCommand
 
   cmake::MessageType type = cmake::MESSAGE;
   bool status = false;
-  if (*i == "SEND_ERROR" || *i == "FATAL_ERROR")
+  bool fatal = false;
+  if (*i == "SEND_ERROR")
     {
     type = cmake::FATAL_ERROR;
     ++i;
     }
+  else if (*i == "FATAL_ERROR")
+    {
+    fatal = true;
+    type = cmake::FATAL_ERROR;
+    ++i;
+    }
   else if (*i == "WARNING")
     {
     type = cmake::WARNING;
@@ -71,6 +78,10 @@ bool cmMessageCommand
       cmSystemTools::Message(message.c_str());
       }
     }
+  if(fatal)
+    {
+    cmSystemTools::SetFatalErrorOccured();
+    }
   return true;
 }
 

+ 1 - 1
Source/cmMessageCommand.h

@@ -72,8 +72,8 @@ public:
       "  STATUS         = Incidental information\n"
       "  WARNING        = CMake Warning, continue processing\n"
       "  AUTHOR_WARNING = CMake Warning (dev), continue processing\n"
+      "  SEND_ERROR     = CMake Error, continue but skip generation\n"
       "  FATAL_ERROR    = CMake Error, stop all processing\n"
-      "  SEND_ERROR     = CMake Error, stop all processing (legacy)\n"
       "The CMake command-line tool displays STATUS messages on stdout "
       "and all other message types on stderr.  "
       "The CMake GUI displays all messages in its log area.  "