summaryrefslogtreecommitdiffstats
path: root/Modules/ExternalProject.cmake
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@crascit.com>2024-01-27 00:06:38 (GMT)
committerCraig Scott <craig.scott@crascit.com>2024-01-27 00:06:38 (GMT)
commit873b2ad2ebaad2ca62c92259a02dcadb9201af1e (patch)
treeb3444fef549207a7dfdd668297828e9bd892a8d0 /Modules/ExternalProject.cmake
parentb7c11ded92997ac232989e208642f9646e3f5b59 (diff)
downloadCMake-873b2ad2ebaad2ca62c92259a02dcadb9201af1e.zip
CMake-873b2ad2ebaad2ca62c92259a02dcadb9201af1e.tar.gz
CMake-873b2ad2ebaad2ca62c92259a02dcadb9201af1e.tar.bz2
ExternalProject: Remove N^2 add_dependencies() calls
ExternalProject_Add_StepDependencies() contained a foreach() loop that had another foreach() loop inside it iterating over the same set of values (the dependencies). This resulted in add_dependencies() calls that added the same dependencies to the step target N^2 times. A single call to add_dependencies() with the list of dependencies provides the necessary relationships without the N^2 behavior, and it removes the inner foreach() loop.
Diffstat (limited to 'Modules/ExternalProject.cmake')
-rw-r--r--Modules/ExternalProject.cmake8
1 files changed, 3 insertions, 5 deletions
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index 757b04e..2e82e1c 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -2746,12 +2746,10 @@ function(ExternalProject_Add_StepDependencies name step)
OUTPUT ${stamp_file}
DEPENDS ${dep}
)
- if(TARGET ${name}-${step})
- foreach(dep ${dependencies})
- add_dependencies(${name}-${step} ${dep})
- endforeach()
- endif()
endforeach()
+ if(TARGET ${name}-${step})
+ add_dependencies(${name}-${step} ${dependencies})
+ endif()
endfunction()