summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-07-02 12:33:15 (GMT)
committerKitware Robot <kwrobot@kitware.com>2024-07-02 12:33:48 (GMT)
commitdb7d89369a2045e619ab905744c7eaf0edd3de0a (patch)
tree4ff6a2f18e60910554e3ac46bd714f525dc59366
parent1e1dbc36feb4db134805b02e5542699beb1d0199 (diff)
parent91b2ce4a6985bcbfa4f757c213a0d9ad89250de8 (diff)
downloadCMake-db7d89369a2045e619ab905744c7eaf0edd3de0a.zip
CMake-db7d89369a2045e619ab905744c7eaf0edd3de0a.tar.gz
CMake-db7d89369a2045e619ab905744c7eaf0edd3de0a.tar.bz2
Merge topic 'orkun_26080_27_06_2024'
91b2ce4a69 Autogen: Remove <target_name>_autogen_timestamp_deps target Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9631
-rw-r--r--Source/cmQtAutoGenInitializer.cxx46
1 files changed, 11 insertions, 35 deletions
diff --git a/Source/cmQtAutoGenInitializer.cxx b/Source/cmQtAutoGenInitializer.cxx
index e444299..d646cce 100644
--- a/Source/cmQtAutoGenInitializer.cxx
+++ b/Source/cmQtAutoGenInitializer.cxx
@@ -1480,6 +1480,16 @@ bool cmQtAutoGenInitializer::InitAutogenTarget()
}
}
+ // For the Ninja, Makefile and Qt >= 5.15, add custom commands that create
+ // XXX_autogen/timestamp files. Those custom commands have a depfile
+ // assigned that is generated from the depfiles that were created by moc.
+ //
+ // The XXX_autogen targets merely wrap the XXX_autogen/timestamp custom
+ // commands.
+ // The dependency tree would then look like
+ // the original dependencies of '_autogen' target <-'/timestamp' file
+ // <- '_autogen' target
+
cmTarget* timestampTarget = nullptr;
std::vector<std::string> dependencies(
this->AutogenTarget.DependFiles.begin(),
@@ -1487,40 +1497,6 @@ bool cmQtAutoGenInitializer::InitAutogenTarget()
if (useDepfile) {
// Create a custom command that generates a timestamp file and
// has a depfile assigned. The depfile is created by JobDepFilesMergeT.
- //
- // Also create an additional '_autogen_timestamp_deps' that the custom
- // command will depend on. It will have no sources or commands to
- // execute, but it will have dependencies that would originally be
- // assigned to the pre-Qt 5.15 'autogen' target. These dependencies will
- // serve as a list of order-only dependencies for the custom command,
- // without forcing the custom command to re-execute.
- //
- // The dependency tree would then look like
- // '_autogen_timestamp_deps (order-only)' <- '/timestamp' file <-
- // '_autogen' target.
- const auto timestampTargetName =
- cmStrCat(this->GenTarget->GetName(), "_autogen_timestamp_deps");
-
- auto cc = cm::make_unique<cmCustomCommand>();
- cc->SetWorkingDirectory(this->Dir.Work.c_str());
- cc->SetDepends(dependencies);
- cc->SetEscapeOldStyle(false);
- timestampTarget = this->LocalGen->AddUtilityCommand(timestampTargetName,
- true, std::move(cc));
-
- this->LocalGen->AddGeneratorTarget(
- cm::make_unique<cmGeneratorTarget>(timestampTarget, this->LocalGen));
-
- // Set FOLDER property on the timestamp target, so it appears in the
- // appropriate folder in an IDE or in the file api.
- if (!this->TargetsFolder.empty()) {
- timestampTarget->SetProperty("FOLDER", this->TargetsFolder);
- }
-
- // Make '/timestamp' file depend on '_autogen_timestamp_deps' and on the
- // moc and uic executables (whichever are enabled).
- dependencies.clear();
- dependencies.push_back(timestampTargetName);
AddAutogenExecutableToDependencies(this->Moc, dependencies);
AddAutogenExecutableToDependencies(this->Uic, dependencies);
@@ -1565,7 +1541,7 @@ bool cmQtAutoGenInitializer::InitAutogenTarget()
{ cmSystemTools::GetCMakeCommand(), "-E", "touch", outputFile }));
this->AddGeneratedSource(outputFile, this->Moc);
}
- cc = cm::make_unique<cmCustomCommand>();
+ auto cc = cm::make_unique<cmCustomCommand>();
cc->SetOutputs(outputFile);
cc->SetByproducts(timestampByproducts);
cc->SetDepends(dependencies);