Explorar el Código

Merge topic 'autorcc-qt-5.1-compat'

e78fcc63 QtAutogen: Fix rcc invocation for Qt 5.0 and 5.1 (#15644)
Brad King hace 10 años
padre
commit
b5d94065c0
Se han modificado 1 ficheros con 20 adiciones y 1 borrados
  1. 20 1
      Source/cmQtAutoGeneratorInitializer.cxx

+ 20 - 1
Source/cmQtAutoGeneratorInitializer.cxx

@@ -490,11 +490,30 @@ static std::string ListQt5RccInputs(cmSourceFile* sf,
 {
   std::string rccCommand
       = GetRccExecutable(target);
+
+  bool hasDashDashList = false;
+  {
+  std::vector<std::string> command;
+  command.push_back(rccCommand);
+  command.push_back("--help");
+  std::string rccStdOut;
+  std::string rccStdErr;
+  int retVal = 0;
+  bool result = cmSystemTools::RunSingleCommand(
+    command, &rccStdOut, &rccStdErr,
+    &retVal, 0, cmSystemTools::OUTPUT_NONE);
+  if (result && retVal == 0 &&
+      rccStdOut.find("--list") != std::string::npos)
+    {
+    hasDashDashList = true;
+    }
+  }
+
   std::vector<std::string> qrcEntries;
 
   std::vector<std::string> command;
   command.push_back(rccCommand);
-  command.push_back("--list");
+  command.push_back(hasDashDashList? "--list" : "-list");
 
   std::string absFile = cmsys::SystemTools::GetRealPath(
                                               sf->GetFullPath());