From 873b2ad2ebaad2ca62c92259a02dcadb9201af1e Mon Sep 17 00:00:00 2001 From: Craig Scott Date: Sat, 27 Jan 2024 11:06:38 +1100 Subject: 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. --- Modules/ExternalProject.cmake | 8 +++----- 1 file 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() -- cgit v0.12