diff options
author | Craig Scott <craig.scott@crascit.com> | 2024-01-27 00:06:38 (GMT) |
---|---|---|
committer | Craig Scott <craig.scott@crascit.com> | 2024-01-27 00:06:38 (GMT) |
commit | 873b2ad2ebaad2ca62c92259a02dcadb9201af1e (patch) | |
tree | b3444fef549207a7dfdd668297828e9bd892a8d0 /Modules/ExternalProject.cmake | |
parent | b7c11ded92997ac232989e208642f9646e3f5b59 (diff) | |
download | CMake-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.cmake | 8 |
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() |