From ebc9e448b38378cc21a6b77df03a77d9732c24ac Mon Sep 17 00:00:00 2001 From: Orkun Tokdemir Date: Thu, 7 Sep 2023 14:51:57 +0200 Subject: Autogen: Add depfile support for Makefiles Fixes: #21677 --- Source/cmQtAutoGenInitializer.cxx | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Source/cmQtAutoGenInitializer.cxx b/Source/cmQtAutoGenInitializer.cxx index c9f65f6..b1d90ee 100644 --- a/Source/cmQtAutoGenInitializer.cxx +++ b/Source/cmQtAutoGenInitializer.cxx @@ -1177,17 +1177,22 @@ bool cmQtAutoGenInitializer::InitAutogenTarget() this->Makefile->AddCMakeOutputFile(this->AutogenTarget.InfoFile); // Determine whether to use a depfile for the AUTOGEN target. - const bool useNinjaDepfile = this->QtVersion >= IntegerVersion(5, 15) && - this->GlobalGen->GetName().find("Ninja") != std::string::npos; + bool const useDepfile = [this]() -> bool { + auto const& gen = this->GlobalGen->GetName(); + return this->QtVersion >= IntegerVersion(5, 15) && + (gen.find("Ninja") != std::string::npos || + gen.find("Make") != std::string::npos); + }(); // Files provided by the autogen target std::vector autogenByproducts; std::vector timestampByproducts; if (this->Moc.Enabled) { this->AddGeneratedSource(this->Moc.CompilationFile, this->Moc, true); - if (useNinjaDepfile) { + if (useDepfile) { if (this->MultiConfig && - !this->Makefile->GetSafeDefinition("CMAKE_CROSS_CONFIGS").empty()) { + !this->Makefile->GetSafeDefinition("CMAKE_CROSS_CONFIGS").empty() && + this->GlobalGen->GetName().find("Ninja") != std::string::npos) { // Make all mocs_compilation_.cpp files byproducts of the // ${target}_autogen/timestamp custom command. // We cannot just use Moc.CompilationFileGenex here, because that @@ -1365,7 +1370,7 @@ bool cmQtAutoGenInitializer::InitAutogenTarget() this->AutogenTarget.DependFiles.begin(), this->AutogenTarget.DependFiles.end()); - if (useNinjaDepfile) { + if (useDepfile) { // Create a custom command that generates a timestamp file and // has a depfile assigned. The depfile is created by JobDepFilesMergeT. // @@ -1472,7 +1477,7 @@ bool cmQtAutoGenInitializer::InitAutogenTarget() autogenTarget->AddUtility(depName.Value.first, false, this->Makefile); } } - if (!useNinjaDepfile) { + if (!useDepfile) { // Add additional autogen target dependencies to autogen target for (cmTarget const* depTarget : this->AutogenTarget.DependTargets) { autogenTarget->AddUtility(depTarget->GetName(), false, this->Makefile); -- cgit v0.12