I have a small patch to CMake that looks like this:

diff --git a/Source/cmMessageCommand.cxx b/Source/cmMessageCommand.cxx
index e1dbf34..ad24368 100644
--- a/Source/cmMessageCommand.cxx
+++ b/Source/cmMessageCommand.cxx
@@ -52,6 +52,18 @@ bool cmMessageCommand
     status = true;
     ++i;
     }
+  else if (*i == "DEBUG")
+    {
+    if (!this->Makefile->GetCMakeInstance()->GetDebugOutput())
+      {
+      if (!this->Makefile->IsOn("CMAKE_DEBUG_MESSAGES"))
+        {
+        return true;
+        }
+      }
+    status = true;
+    ++i;
+    }
 
   for(;i != args.end(); ++i)
     {

The idea behind this is like that: you can write message(DEBUG ...) everywhere 
in your CMake code and it will just print out nothing. Once you run cmake --
debug-output these messages will behave like message(STATUS), i.e. give you 
their contents and call trace. If at the point of the message(DEBUG) call a 
variable CMAKE_DEBUG_MESSAGES is set the message will behave like a normal 
message(STATUS), too. This variable is a completely normal CMake variable, 
i.e. it follows the normal scoping rules. My idea is to go into 
Modules/Find*.cmake and e.g. replace if(Boost_DEBUG) message(...) endif() just 
by "CMAKE_DEBUG_MESSAGES |= Boost_DEBUG" message(DEBUG ...).

Opinions?

Eike

Attachment: signature.asc
Description: This is a digitally signed message part.

--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to