Commit 4b4fd99f authored by Sebastian Holtermann's avatar Sebastian Holtermann
Browse files

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"
parent 66efdbd2
......@@ -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;
......
......@@ -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;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment