From 6f67ab7540db656b6b03cec5defa78b6d4e5c03b Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Thu, 20 Oct 2005 07:35:25 +0000 Subject: [PATCH] Fix generators with several targets of the same time. Previously, if generator were declared as: type.register LEMON : lemon ; generators.register-standard lemon.lemon : LEMON : C H C(%_opcodes) H(%_opcodes) ; V2 would consider LEMON->C and LEMON->C(%_opcodes) two separate transformation and report an ambiguity. Now the generator is run only once. [SVN r31405] --- v2/build/generators.jam | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/v2/build/generators.jam b/v2/build/generators.jam index 219a3c58c..886e44cbd 100644 --- a/v2/build/generators.jam +++ b/v2/build/generators.jam @@ -598,7 +598,11 @@ rule register ( g ) { .generators += $(g) ; - for local t in [ $(g).target-types ] + # A generator can produce several targets of the + # same type. We want unique occurence of that generator + # in .generators.$(t) in that case, otherwise, it will + # be tried twice and we'll get false ambiguity. + for local t in [ sequence.unique [ $(g).target-types ] ] { .generators.$(t) += $(g) ; }