Forráskód Böngészése

Autogen: Use ADDITIONAL_CLEAN_FILES target property for file cleaning

The `ADDITIONAL_CLEAN_FILES` target property works on multiple generators
to remove addition files at the clean target.  In `AUTOGEN` use it instead of
the deprecated and limited `ADDITIONAL_MAKE_CLEAN_FILES` directory property
to remove `AUTOGEN` generated files.

Fixes: #17074 "Autogen: clean target with ninja generator doesn’t clean
               autogen files"
Sebastian Holtermann 6 éve
szülő
commit
4b4fd99f41
2 módosított fájl, 11 hozzáadás és 10 törlés
  1. 10 10
      Source/cmQtAutoGenInitializer.cxx
  2. 1 0
      Source/cmQtAutoGenInitializer.h

+ 10 - 10
Source/cmQtAutoGenInitializer.cxx

@@ -52,12 +52,6 @@ static std::size_t GetParallelCPUCount()
   return count;
 }
 
-static void AddCleanFile(cmMakefile* makefile, std::string const& fileName)
-{
-  makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", fileName.c_str(),
-                           false);
-}
-
 static std::string FileProjectRelativePath(cmMakefile* makefile,
                                            std::string const& fileName)
 {
@@ -320,7 +314,7 @@ bool cmQtAutoGenInitializer::InitCustomTargets()
     }
     cmSystemTools::ConvertToUnixSlashes(this->Dir.Build);
     // Cleanup build directory
-    AddCleanFile(makefile, this->Dir.Build);
+    this->AddCleanFile(this->Dir.Build);
 
     // Working directory
     this->Dir.Work = cbd;
@@ -381,15 +375,15 @@ bool cmQtAutoGenInitializer::InitCustomTargets()
           std::string& filename = this->AutogenTarget.ConfigSettingsFile[cfg];
           filename =
             AppendFilenameSuffix(this->AutogenTarget.SettingsFile, "_" + cfg);
-          AddCleanFile(makefile, filename);
+          this->AddCleanFile(filename);
         }
       } else {
-        AddCleanFile(makefile, this->AutogenTarget.SettingsFile);
+        this->AddCleanFile(this->AutogenTarget.SettingsFile);
       }
 
       this->AutogenTarget.ParseCacheFile = this->Dir.Info;
       this->AutogenTarget.ParseCacheFile += "/ParseCache.txt";
-      AddCleanFile(makefile, this->AutogenTarget.ParseCacheFile);
+      this->AddCleanFile(this->AutogenTarget.ParseCacheFile);
     }
 
     // Autogen target: Compute user defined dependencies
@@ -1528,6 +1522,12 @@ bool cmQtAutoGenInitializer::AddToSourceGroup(std::string const& fileName,
   return true;
 }
 
+void cmQtAutoGenInitializer::AddCleanFile(std::string const& fileName)
+{
+  Target->Target->AppendProperty("ADDITIONAL_CLEAN_FILES", fileName.c_str(),
+                                 false);
+}
+
 static unsigned int CharPtrToUInt(const char* const input)
 {
   unsigned long tmp = 0;

+ 1 - 0
Source/cmQtAutoGenInitializer.h

@@ -145,6 +145,7 @@ private:
                           bool prepend = false);
   bool AddToSourceGroup(std::string const& fileName,
                         std::string const& genNameUpper);
+  void AddCleanFile(std::string const& fileName);
 
   bool GetQtExecutable(GenVarsT& genVars, const std::string& executable,
                        bool ignoreMissingTarget, std::string* output) const;