Browse Source

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.
Eduard Voronkin 2 months ago
parent
commit
64296789d3
2 changed files with 12 additions and 5 deletions
  1. 12 0
      Source/cmFastbuildNormalTargetGenerator.cxx
  2. 0 5
      Source/cmFastbuildTargetGenerator.cxx

+ 12 - 0
Source/cmFastbuildNormalTargetGenerator.cxx

@@ -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));
 }
 

+ 0 - 5
Source/cmFastbuildTargetGenerator.cxx

@@ -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);