List Info

Thread: Problem with ambiguity error




Problem with ambiguity error
user name
2006-02-21 23:16:38
I've created two custom generators that create CPP files
from intermediate 
files.  I'm getting an ambiguity error that can be resolved
by reordering my 
imports, but I don't like that answer as it seems to
indicate an underlying 
problem with my approach.

Does anyone have any ideas what is going on?

Thanks,
Daniel

===================================

type.register CUSTOMERINFO : : CPP ;
generators.register [ new customerinfo-generator
customerinfo.transform : 
CUSTOMERINFO : CPP ] ;

type.register CSCONFIG : ini ;
generators.register [ new csconfig-generator
csconfig.transform : CSCONFIG : 
CPP ] ;
generators.register [ new csconfig-generator csconfig.merge
: CSCONFIG : 
CSCONFIG ] ;


In my Jamfile, I have the following (extract):

# if I reverse the order of these imports, everything works
fine.
import customerinfo ;
import csconfig ;


customerinfo customerinfo.cpp
    : # sources
        # This cast is needed so the customerinfo generator
        # gets called instead of the standard CPP generator.
        [ cast _ customerinfo : defaultcustomerinfo.cpp ]
    ;

csconfig csconfig.ini
    : # sources
        csconfig-base.ini
        csconfig-acustomer.ini
    ;
cpp csconfig.cpp
    : # sources
        csconfig.ini
    : # requirements
        <built-tool>tools//makecppconfig
        <dependency>tools//makecppconfig
    ;

[C:\src\csmdev\engine\cpp\util\common]bjam
csconfig.cpp
Error: ambiguity found when searching for best
transformation
Trying to produce type 'CUSTOMERINFO' from:
 -  { csconfig%csconfig.merge-csconfig.ini.CSCONFIG { 
csconfig-base.ini.CSCONFIG } {
csconfig-acustomer.ini.CSCONFIG } }
Generators that succeeded:
 -  customerinfo.transform
 -  csconfig.transform
First generator produced:
 -  {
customerinfo%customerinfo.transform-csconfig.cpp.CUSTOMERINF
O { 
csconfig%csconfig.transform-csconfig.cpp.CUSTOMERINFO { 
csconfig%csconfig.merge-csco
nfig.ini.CSCONFIG { csconfig-base.ini.CSCONFIG } { 
csconfig-acustomer.ini.CSCONFIG } } } }
Second generator produces:
 -  { csconfig%csconfig.transform-csconfig.cpp.CUSTOMERINFO
{ 
csconfig%csconfig.merge-csconfig.ini.CSCONFIG {
csconfig-base.ini.CSCONFIG } 
{ csconfig-acustomer.
ini.CSCONFIG } } }


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )