summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-03-13 16:39:32 (GMT)
committerBrad King <brad.king@kitware.com>2024-03-14 13:18:56 (GMT)
commitd2d1763f884c6cefa3bb9be62ff91f84de38d604 (patch)
treef9df2b447f8f95547a56611249c4a29f57878570
parent6193d155560b52f6b43160f094a73b4dd3c920d3 (diff)
downloadCMake-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.cxx34
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