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"
This commit is contained in:
Sebastian Holtermann
2019-05-15 10:52:49 +02:00
parent 66efdbd21a
commit 4b4fd99f41
2 changed files with 11 additions and 10 deletions

View File

@@ -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;

View File

@@ -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;