FASTBuild: don't write empty dependencies

We were writing "-deps" alias in the generated file
even if we didn't have any dependencies, which is excessive
and makes FASTBuild do more work then necessary.
This commit is contained in:
Eduard Voronkin
2025-09-18 13:52:02 -07:00
parent 2fdae375ec
commit 64296789d3
2 changed files with 12 additions and 5 deletions

View File

@@ -925,6 +925,18 @@ void cmFastbuildNormalTargetGenerator::Generate()
AdditionalCleanFiles();
if (!fastbuildTarget.DependenciesAlias.PreBuildDependencies.empty()) {
for (FastbuildObjectListNode& objListNode :
fastbuildTarget.ObjectListNodes) {
objListNode.PreBuildDependencies.emplace(
fastbuildTarget.DependenciesAlias.Name);
}
for (auto& linkerNode : fastbuildTarget.LinkerNode) {
linkerNode.PreBuildDependencies.emplace(
fastbuildTarget.DependenciesAlias.Name);
}
}
this->GetGlobalGenerator()->AddTarget(std::move(fastbuildTarget));
}

View File

@@ -795,8 +795,6 @@ void cmFastbuildTargetGenerator::AddObjectDependencies(
};
for (FastbuildObjectListNode& objList : fastbuildTarget.ObjectListNodes) {
objList.PreBuildDependencies.emplace(
fastbuildTarget.Name + FASTBUILD_DEPS_ARTIFACTS_ALIAS_POSTFIX);
for (auto const& objDep : objList.ObjectDepends) {
// Check if there is another object list which outputs (OBJECT_OUTPUTS)
// something that this object list needs (OBJECT_DEPENDS).
@@ -820,9 +818,6 @@ void cmFastbuildTargetGenerator::AddLinkerNodeDependnecies(
FastbuildTarget& fastbuildTarget)
{
for (auto& linkerNode : fastbuildTarget.LinkerNode) {
linkerNode.PreBuildDependencies.emplace(
fastbuildTarget.Name + FASTBUILD_DEPS_ARTIFACTS_ALIAS_POSTFIX);
if (!fastbuildTarget.PreLinkExecNodes.Nodes.empty()) {
linkerNode.PreBuildDependencies.emplace(
fastbuildTarget.Name + FASTBUILD_PRE_LINK_ALIAS_POSTFIX);