From a1753ca655d75aee959bcfacaa7e094904a18b10 Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Thu, 11 Dec 2003 10:14:58 +0000 Subject: [PATCH] * build/targets.jam (project-target.generate) (main-target.generate): When returning targets, remove duplicates. Since all generates pass though all targets they can't handle, it's possible that targets that are never used (such as .dll on windows), bubble up and 'all' depends on it many times, which might be inefficient. [SVN r21218] --- src/build/targets.jam | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/build/targets.jam b/src/build/targets.jam index 2981c9c7d..6c8f704ae 100644 --- a/src/build/targets.jam +++ b/src/build/targets.jam @@ -157,6 +157,7 @@ class project-target : abstract-target import print ; import property-set ; import set : difference : set.difference ; + import sequence ; import "class" : new ; rule __init__ ( name : project : requirements * : default-build * ) @@ -179,7 +180,7 @@ class project-target : abstract-target usage-requirements = [ $(usage-requirements).add $(g[1]) ] ; targets += $(g[2-]) ; } - return $(usage-requirements) $(targets) ; + return $(usage-requirements) [ sequence.unique $(targets) ] ; } # Computes and returns a list of abstract-target instances which @@ -308,7 +309,7 @@ class main-target : abstract-target { import errors : error ; import assert ; - import sequence ; + import sequence ; import print ; import build-request feature property-set ; import targets : start-building end-building ; @@ -484,7 +485,7 @@ class main-target : abstract-target result += $(r[2-]) ; } end-building $(__name__) ; - return $(usage-requirements) $(result) ; + return $(usage-requirements) [ sequence.unique $(result) ] ; } # Generates the main target with the given property set