summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorSebastien Barre <sebastien.barre@kitware.com>2002-03-29 15:56:07 (GMT)
committerSebastien Barre <sebastien.barre@kitware.com>2002-03-29 15:56:07 (GMT)
commitb6ebd7b7faae86140fb711dac1f96e2dd047ecd9 (patch)
tree5ba53639c85100d81ebabe7879ed2ecdf62d9116 /Source
parent61697fab50336f095bcd1729be7fabd223466ab7 (diff)
downloadCMake-b6ebd7b7faae86140fb711dac1f96e2dd047ecd9.zip
CMake-b6ebd7b7faae86140fb711dac1f96e2dd047ecd9.tar.gz
CMake-b6ebd7b7faae86140fb711dac1f96e2dd047ecd9.tar.bz2
ENH: Add SEND_ERROR flag to MESSAGE so that an error can be raised within a CMakeList file
Diffstat (limited to 'Source')
-rw-r--r--Source/cmMessageCommand.cxx20
-rw-r--r--Source/cmMessageCommand.h4
2 files changed, 21 insertions, 3 deletions
diff --git a/Source/cmMessageCommand.cxx b/Source/cmMessageCommand.cxx
index f1ade11..0cb2661 100644
--- a/Source/cmMessageCommand.cxx
+++ b/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;
}
diff --git a/Source/cmMessageCommand.h b/Source/cmMessageCommand.h
index 6a0403d..ca19264 100644
--- a/Source/cmMessageCommand.h
+++ b/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);