summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2013-09-17 16:54:34 (GMT)
committerStephen Kelly <steveire@gmail.com>2013-10-08 16:11:22 (GMT)
commit509c142a3f5ae4c1aa8dfcb4257c63a9e1edc270 (patch)
treea40f496e40a0d6175e5b6c553ab5c3c004a4bba8 /Source
parent40c84683aafc9447a0e17d81a71d061efde84bdb (diff)
downloadCMake-509c142a3f5ae4c1aa8dfcb4257c63a9e1edc270.zip
CMake-509c142a3f5ae4c1aa8dfcb4257c63a9e1edc270.tar.gz
CMake-509c142a3f5ae4c1aa8dfcb4257c63a9e1edc270.tar.bz2
message: Add a DEPRECATION mode
By default, the message is not issued. If CMAKE_ERROR_DEPRECATED is on, the message is fatal. If CMAKE_WARN_DEPRECATED is on, the message is a warning.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmMessageCommand.cxx17
-rw-r--r--Source/cmMessageCommand.h8
-rw-r--r--Source/cmake.cxx9
-rw-r--r--Source/cmake.h4
4 files changed, 34 insertions, 4 deletions
diff --git a/Source/cmMessageCommand.cxx b/Source/cmMessageCommand.cxx
index e1dbf34..d85e720 100644
--- a/Source/cmMessageCommand.cxx
+++ b/Source/cmMessageCommand.cxx
@@ -52,6 +52,23 @@ bool cmMessageCommand
status = true;
++i;
}
+ else if (*i == "DEPRECATION")
+ {
+ if (this->Makefile->IsOn("CMAKE_ERROR_DEPRECATED"))
+ {
+ fatal = true;
+ type = cmake::DEPRECATION_ERROR;
+ }
+ else if (this->Makefile->IsOn("CMAKE_WARN_DEPRECATED"))
+ {
+ type = cmake::DEPRECATION_WARNING;
+ }
+ else
+ {
+ return true;
+ }
+ ++i;
+ }
for(;i != args.end(); ++i)
{
diff --git a/Source/cmMessageCommand.h b/Source/cmMessageCommand.h
index fc61810..a053bdd 100644
--- a/Source/cmMessageCommand.h
+++ b/Source/cmMessageCommand.h
@@ -60,9 +60,8 @@ public:
virtual const char* GetFullDocumentation() const
{
return
- " message([STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR]\n"
- " \"message to display\" ...)\n"
- "The optional keyword determines the type of message:\n"
+ " message([<mode>] \"message to display\" ...)\n"
+ "The optional <mode> keyword determines the type of message:\n"
" (none) = Important information\n"
" STATUS = Incidental information\n"
" WARNING = CMake Warning, continue processing\n"
@@ -70,6 +69,9 @@ public:
" SEND_ERROR = CMake Error, continue processing,\n"
" but skip generation\n"
" FATAL_ERROR = CMake Error, stop processing and generation\n"
+ " DEPRECATION = CMake Deprecation Error or Warning if variable\n"
+ " CMAKE_ERROR_DEPRECATED or CMAKE_WARN_DEPRECATED\n"
+ " is enabled, respectively, else no message.\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. "
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 2249323..d2961c0 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -3127,6 +3127,15 @@ void cmake::IssueMessage(cmake::MessageType t, std::string const& text,
{
msg << "CMake Debug Log";
}
+ else if(t == cmake::DEPRECATION_ERROR)
+ {
+ msg << "CMake Deprecation Error";
+ isError = true;
+ }
+ else if (t == cmake::DEPRECATION_WARNING)
+ {
+ msg << "CMake Deprecation Warning";
+ }
else
{
msg << "CMake Warning";
diff --git a/Source/cmake.h b/Source/cmake.h
index ccf91e3..d33ba34 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -65,7 +65,9 @@ class cmake
INTERNAL_ERROR,
MESSAGE,
WARNING,
- LOG
+ LOG,
+ DEPRECATION_ERROR,
+ DEPRECATION_WARNING
};