Browse Source

Autogen: New logCommand method. It prints commands using std::cout.

Sebastian Holtermann 9 years ago
parent
commit
8ced8bb95a
2 changed files with 25 additions and 21 deletions
  1. 24 21
      Source/cmQtAutoGenerators.cxx
  2. 1 0
      Source/cmQtAutoGenerators.h

+ 24 - 21
Source/cmQtAutoGenerators.cxx

@@ -1159,13 +1159,7 @@ bool cmQtAutoGenerators::GenerateMoc(const std::string& sourceFile,
 
     if (this->Verbose)
       {
-      for(std::vector<std::string>::const_iterator cmdIt = command.begin();
-          cmdIt != command.end();
-          ++cmdIt)
-        {
-        std::cout << *cmdIt << " ";
-        }
-      std::cout << std::endl;
+      this->LogCommand(command);
       }
 
     std::string output;
@@ -1231,13 +1225,7 @@ bool cmQtAutoGenerators::GenerateUi(const std::string& realName,
 
     if (this->Verbose)
       {
-      for(std::vector<std::string>::const_iterator cmdIt = command.begin();
-          cmdIt != command.end();
-          ++cmdIt)
-        {
-        std::cout << *cmdIt << " ";
-        }
-      std::cout << std::endl;
+      this->LogCommand(command);
       }
     std::string output;
     int retVal = 0;
@@ -1322,13 +1310,7 @@ bool cmQtAutoGenerators::GenerateQrc()
 
       if (this->Verbose)
         {
-        for(std::vector<std::string>::const_iterator cmdIt = command.begin();
-            cmdIt != command.end();
-            ++cmdIt)
-          {
-          std::cout << *cmdIt << " ";
-          }
-        std::cout << std::endl;
+        this->LogCommand(command);
         }
       std::string output;
       int retVal = 0;
@@ -1347,6 +1329,27 @@ bool cmQtAutoGenerators::GenerateQrc()
   return true;
 }
 
+void cmQtAutoGenerators::LogCommand(const std::vector<std::string>& command)
+{
+  std::stringstream sbuf;
+  for(std::vector<std::string>::const_iterator cmdIt = command.begin();
+      cmdIt != command.end();
+      ++cmdIt)
+    {
+    if ( cmdIt != command.begin() )
+      {
+      sbuf << " ";
+      }
+    sbuf << *cmdIt;
+    }
+  sbuf.flush();
+  if ( !sbuf.str().empty() )
+    {
+    std::cout << sbuf.str();
+    std::cout << std::endl;
+    }
+}
+
 std::string cmQtAutoGenerators::JoinExts(const std::vector<std::string>& lst)
 {
     if (lst.empty())

+ 1 - 0
Source/cmQtAutoGenerators.h

@@ -69,6 +69,7 @@ private:
 
   void Init();
 
+  void LogCommand(const std::vector<std::string>& command);
   std::string JoinExts(const std::vector<std::string>& lst);
 
   static void MergeUicOptions(std::vector<std::string> &opts,