diff options
author | Orkun Tokdemir <ilhanorkuntokdemir@gmail.com> | 2023-09-07 12:51:57 (GMT) |
---|---|---|
committer | Orkun Tokdemir <ilhanorkuntokdemir@gmail.com> | 2023-09-11 12:51:58 (GMT) |
commit | ebc9e448b38378cc21a6b77df03a77d9732c24ac (patch) | |
tree | a86ed7feb63e699177ec80ae743cdca6f02a8fb4 | |
parent | e5358b9d8d1f284b6bd587bc6a84c3d6933edd5d (diff) | |
download | CMake-ebc9e448b38378cc21a6b77df03a77d9732c24ac.zip CMake-ebc9e448b38378cc21a6b77df03a77d9732c24ac.tar.gz CMake-ebc9e448b38378cc21a6b77df03a77d9732c24ac.tar.bz2 |
Autogen: Add depfile support for Makefiles
Fixes: #21677
-rw-r--r-- | Source/cmQtAutoGenInitializer.cxx | 17 |
1 files 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<std::string> autogenByproducts; std::vector<std::string> 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_<CONFIG>.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); |