浏览代码

QtAutogen: Add _automoc.cpp sources before initializing.

Stephen Kelly 10 年之前
父节点
当前提交
c3c20d3ce3
共有 3 个文件被更改,包括 17 次插入2 次删除
  1. 1 0
      Source/cmGlobalGenerator.cxx
  2. 15 2
      Source/cmQtAutoGenerators.cxx
  3. 1 0
      Source/cmQtAutoGenerators.h

+ 1 - 0
Source/cmGlobalGenerator.cxx

@@ -1456,6 +1456,7 @@ void cmGlobalGenerator::CreateQtAutoGeneratorsTargets(AutogensType &autogens)
       cmTarget& target = *this->LocalGenerators[i]
                               ->GetMakefile()->FindTarget(*ti, true);
 
+      cmQtAutoGenerators::InitializeAutogenSources(&target);
       cmQtAutoGenerators::InitializeAutogenTarget(
            this->LocalGenerators[i], &target);
       cmQtAutoGenerators autogen;

+ 15 - 2
Source/cmQtAutoGenerators.cxx

@@ -286,8 +286,8 @@ std::string cmQtAutoGenerators::ListQt4RccInputs(cmSourceFile* sf,
   return entriesList;
 }
 
-void cmQtAutoGenerators::InitializeAutogenTarget(cmLocalGenerator* lg,
-                                                 cmTarget* target)
+
+void cmQtAutoGenerators::InitializeAutogenSources(cmTarget* target)
 {
   cmMakefile* makefile = target->GetMakefile();
 
@@ -304,6 +304,19 @@ void cmQtAutoGenerators::InitializeAutogenTarget(cmLocalGenerator* lg,
 
     target->AddSource(mocCppFile);
     }
+}
+
+void cmQtAutoGenerators::InitializeAutogenTarget(cmLocalGenerator* lg,
+                                                 cmTarget* target)
+{
+  cmMakefile* makefile = target->GetMakefile();
+
+  std::string qtMajorVersion = makefile->GetSafeDefinition("QT_VERSION_MAJOR");
+  if (qtMajorVersion == "")
+    {
+    qtMajorVersion = makefile->GetSafeDefinition("Qt5Core_VERSION_MAJOR");
+    }
+
   // create a custom target for running generators at buildtime:
   std::string autogenTargetName = getAutogenTargetName(target);
 

+ 1 - 0
Source/cmQtAutoGenerators.h

@@ -31,6 +31,7 @@ public:
   cmQtAutoGenerators();
   bool Run(const std::string& targetDirectory, const std::string& config);
 
+  static void InitializeAutogenSources(cmTarget* target);
   static void InitializeAutogenTarget(cmLocalGenerator* lg, cmTarget* target);
   static void SetupAutoGenerateTarget(cmTarget const* target);