Browse Source

ENH: Add SEND_ERROR flag to MESSAGE so that an error can be raised within a CMakeList file

Sebastien Barre 23 years ago
parent
commit
b6ebd7b7fa
2 changed files with 21 additions and 3 deletions
  1. 19 1
      Source/cmMessageCommand.cxx
  2. 2 2
      Source/cmMessageCommand.h

+ 19 - 1
Source/cmMessageCommand.cxx

@@ -25,13 +25,31 @@ bool cmMessageCommand::InitialPass(std::vector<std::string> const& args)
     this->SetError("called with incorrect number of arguments");
     return false;
     }
+
   std::string message;
   std::vector<std::string>::const_iterator i = args.begin();
+
+  bool send_error = false;
+  if (*i == "SEND_ERROR")
+    {
+    send_error = true;
+    ++i;
+    }
+
   for(;i != args.end(); ++i)
     {
     message += *i;
     }
-  cmSystemTools::Message(message.c_str());
+
+  if (send_error)
+    {
+    cmSystemTools::Error(message.c_str());
+    }
+  else
+    {
+    cmSystemTools::Message(message.c_str());
+    }
+
   return true;
 }
 

+ 2 - 2
Source/cmMessageCommand.h

@@ -60,8 +60,8 @@ public:
   virtual const char* GetFullDocumentation()
     {
     return
-      "MESSAGE(\"the message to display\" \"Title for dialog\")\n"
-      "The first argument is the message to display. The second argument is optional and is the title for the dialog box on windows.";
+      "MESSAGE([SEND_ERROR] \"message to display\"...)\n"
+      "The arguments are messages to display. If the first argument is SEND_ERROR then an error is raised.";
     }
   
   cmTypeMacro(cmMessageCommand, cmCommand);