diff options
author | Brad King <brad.king@kitware.com> | 2024-03-13 16:39:32 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2024-03-14 13:18:56 (GMT) |
commit | d2d1763f884c6cefa3bb9be62ff91f84de38d604 (patch) | |
tree | f9df2b447f8f95547a56611249c4a29f57878570 | |
parent | 6193d155560b52f6b43160f094a73b4dd3c920d3 (diff) | |
download | CMake-d2d1763f884c6cefa3bb9be62ff91f84de38d604.zip CMake-d2d1763f884c6cefa3bb9be62ff91f84de38d604.tar.gz CMake-d2d1763f884c6cefa3bb9be62ff91f84de38d604.tar.bz2 |
cmQtAutoGenInitializer: De-duplicate autogen/timestamp target depend logic
We place the same target ordering dependencies on either the
`_autogen_timestamp_deps` target or the `_autogen` target.
Refactor the logic to avoid duplicating that code.
-rw-r--r-- | Source/cmQtAutoGenInitializer.cxx | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/Source/cmQtAutoGenInitializer.cxx b/Source/cmQtAutoGenInitializer.cxx index b4e045d..891b58d 100644 --- a/Source/cmQtAutoGenInitializer.cxx +++ b/Source/cmQtAutoGenInitializer.cxx @@ -1366,6 +1366,7 @@ bool cmQtAutoGenInitializer::InitAutogenTarget() } } + cmTarget* timestampTarget = nullptr; std::vector<std::string> dependencies( this->AutogenTarget.DependFiles.begin(), this->AutogenTarget.DependFiles.end()); @@ -1390,24 +1391,8 @@ bool cmQtAutoGenInitializer::InitAutogenTarget() cc->SetWorkingDirectory(this->Dir.Work.c_str()); cc->SetDepends(dependencies); cc->SetEscapeOldStyle(false); - cmTarget* timestampTarget = this->LocalGen->AddUtilityCommand( - timestampTargetName, true, std::move(cc)); - - // Add additional autogen target dependencies to - // '_autogen_timestamp_deps'. - for (const cmTarget* t : this->AutogenTarget.DependTargets) { - timestampTarget->AddUtility(t->GetName(), false, this->Makefile); - } - - auto const isMake = - this->GlobalGen->GetName().find("Make") != std::string::npos; - if (this->AutogenTarget.DependOrigin && isMake) { - for (BT<std::pair<std::string, bool>> const& depName : - this->GenTarget->GetUtilities()) { - timestampTarget->AddUtility(depName.Value.first, false, - this->Makefile); - } - } + timestampTarget = this->LocalGen->AddUtilityCommand(timestampTargetName, + true, std::move(cc)); this->LocalGen->AddGeneratorTarget( cm::make_unique<cmGeneratorTarget>(timestampTarget, this->LocalGen)); @@ -1471,18 +1456,19 @@ bool cmQtAutoGenInitializer::InitAutogenTarget() this->LocalGen->AddGeneratorTarget( cm::make_unique<cmGeneratorTarget>(autogenTarget, this->LocalGen)); + // Order the autogen target(s) just before the original target. + cmTarget* orderTarget = timestampTarget ? timestampTarget : autogenTarget; // Forward origin utilities to autogen target if (this->AutogenTarget.DependOrigin) { for (BT<std::pair<std::string, bool>> const& depName : this->GenTarget->GetUtilities()) { - autogenTarget->AddUtility(depName.Value.first, false, this->Makefile); + orderTarget->AddUtility(depName.Value.first, false, this->Makefile); } } - if (!useDepfile) { - // Add additional autogen target dependencies to autogen target - for (cmTarget const* depTarget : this->AutogenTarget.DependTargets) { - autogenTarget->AddUtility(depTarget->GetName(), false, this->Makefile); - } + + // Add additional autogen target dependencies to autogen target + for (cmTarget const* depTarget : this->AutogenTarget.DependTargets) { + orderTarget->AddUtility(depTarget->GetName(), false, this->Makefile); } // Set FOLDER property in autogen target |