소스 검색

Autogen: Split creation and setup of custom targets into separate steps

Defer the setup step until after compile features have been finalized on
normal targets.  Later this will help pass the information to Qt tools.

Issue: #24624
Orkun Tokdemir 2 년 전
부모
커밋
21f812e57c
4개의 변경된 파일12개의 추가작업 그리고 25개의 파일을 삭제
  1. 10 12
      Source/cmGlobalGenerator.cxx
  2. 0 4
      Source/cmGlobalGenerator.h
  3. 0 5
      Source/cmQtAutoGenGlobalInitializer.cxx
  4. 2 4
      Source/cmQtAutoGenGlobalInitializer.h

+ 10 - 12
Source/cmGlobalGenerator.cxx

@@ -1543,10 +1543,12 @@ bool cmGlobalGenerator::Compute()
     return false;
   }
 
-  // Iterate through all targets and set up AUTOMOC, AUTOUIC and AUTORCC
-  if (!this->QtAutoGen()) {
+#ifndef CMAKE_BOOTSTRAP
+  cmQtAutoGenGlobalInitializer qtAutoGen(this->LocalGenerators);
+  if (!qtAutoGen.InitializeCustomTargets()) {
     return false;
   }
+#endif
 
   // Add generator specific helper commands
   for (const auto& localGen : this->LocalGenerators) {
@@ -1563,6 +1565,12 @@ bool cmGlobalGenerator::Compute()
     }
   }
 
+#ifndef CMAKE_BOOTSTRAP
+  if (!qtAutoGen.SetupCustomTargets()) {
+    return false;
+  }
+#endif
+
   for (const auto& localGen : this->LocalGenerators) {
     cmMakefile* mf = localGen->GetMakefile();
     for (const auto& g : mf->GetInstallGenerators()) {
@@ -1764,16 +1772,6 @@ void cmGlobalGenerator::ComputeTargetOrder(cmGeneratorTarget const* gt,
   entry->second = index++;
 }
 
-bool cmGlobalGenerator::QtAutoGen()
-{
-#ifndef CMAKE_BOOTSTRAP
-  cmQtAutoGenGlobalInitializer initializer(this->LocalGenerators);
-  return initializer.generate();
-#else
-  return true;
-#endif
-}
-
 bool cmGlobalGenerator::AddHeaderSetVerification()
 {
   for (auto const& gen : this->LocalGenerators) {

+ 0 - 4
Source/cmGlobalGenerator.h

@@ -625,10 +625,6 @@ protected:
 
   void CxxModuleSupportCheck() const;
 
-  /// @brief Qt AUTOMOC/UIC/RCC target generation
-  /// @return true on success
-  bool QtAutoGen();
-
   bool AddHeaderSetVerification();
 
   bool AddAutomaticSources();

+ 0 - 5
Source/cmQtAutoGenGlobalInitializer.cxx

@@ -264,11 +264,6 @@ cmQtAutoGenGlobalInitializer::GetCompilerFeatures(
   return res;
 }
 
-bool cmQtAutoGenGlobalInitializer::generate()
-{
-  return (this->InitializeCustomTargets() && this->SetupCustomTargets());
-}
-
 bool cmQtAutoGenGlobalInitializer::InitializeCustomTargets()
 {
   // Initialize global autogen targets

+ 2 - 4
Source/cmQtAutoGenGlobalInitializer.h

@@ -51,14 +51,12 @@ public:
 
   Keywords const& kw() const { return this->Keywords_; }
 
-  bool generate();
+  bool InitializeCustomTargets();
+  bool SetupCustomTargets();
 
 private:
   friend class cmQtAutoGenInitializer;
 
-  bool InitializeCustomTargets();
-  bool SetupCustomTargets();
-
   void GetOrCreateGlobalTarget(cmLocalGenerator* localGen,
                                std::string const& name,
                                std::string const& comment);