Browse Source

Color output when running moc

Alex
Alex Neundorf 14 năm trước cách đây
mục cha
commit
ddb517d014
2 tập tin đã thay đổi với 23 bổ sung8 xóa
  1. 22 8
      Source/cmQtAutomoc.cxx
  2. 1 0
      Source/cmQtAutomoc.h

+ 22 - 8
Source/cmQtAutomoc.cxx

@@ -4,14 +4,31 @@
 #include "cmSourceFile.h"
 #include "cmSystemTools.h"
 
+# include <cmsys/Terminal.h>
+
 #include "cmQtAutomoc.h"
 
 
 cmQtAutomoc::cmQtAutomoc()
 :Verbose(cmsys::SystemTools::GetEnv("VERBOSE") != 0)
+,ColorOutput(true)
 ,RunMocFailed(false)
 ,GenerateAll(false)
 {
+
+  std::string colorEnv = "";
+  cmsys::SystemTools::GetEnv("COLOR", colorEnv);
+  if(!colorEnv.empty())
+    {
+    if(cmSystemTools::IsOn(colorEnv.c_str()))
+      {
+      this->ColorOutput = true;
+      }
+    else
+      {
+      this->ColorOutput = false;
+      }
+    }
 }
 
 
@@ -678,14 +695,11 @@ bool cmQtAutomoc::GenerateMoc(const std::string& sourceFile,
       cmsys::SystemTools::MakeDirectory(mocDir.c_str());
       }
 
-/*    if (this->Verbose)
-      {
-      echoColor("Generating " + mocFilePath + " from " + sourceFile);
-      }
-    else
-      {
-      echoColor("Generating " + mocFileName);
-      }*/
+    std::string msg = "Generating ";
+    msg += mocFileName;
+    cmSystemTools::MakefileColorEcho(cmsysTerminal_Color_ForegroundBlue
+                                           |cmsysTerminal_Color_ForegroundBold,
+                                     msg.c_str(), true, this->ColorOutput);
 
     std::vector<cmStdString> command;
     command.push_back(this->MocExecutable);

+ 1 - 0
Source/cmQtAutomoc.h

@@ -61,6 +61,7 @@ private:
   std::list<std::string> MocDefinitions;
 
   bool Verbose;
+  bool ColorOutput;
   bool RunMocFailed;
   bool GenerateAll;