[Boost.build v2 (1.32.0)] Writing an extension for LEIF (XSD to C++ Class Generator)...

Hello all, We are currently using boost_1_32_0 and I'm trying to write a toolset file to enable us to use Roguewave's LEIF xsd2cpp C++ class generator from within bjam. (The xsd2cpp command is just a C++ class generator that generates C++ class from a respective W3C XSD Schema). I'm not having much luck, I've been through the boost build manual, samples, etc. and I'm still having problems. In the end, I would like to be able to write a library rule such as : lib libclientxml : schemas.xsd ; And have boost run RW's xsd2cpp tool run on the file schemas.xsd and all of the resulting cpp files that are generated would be compiled and archived in libclientxml. I have a toolset file in my boost-build/tools directory as follows: ---- begin file boost-build/tools/xsd2cpp.jam ---- import type ; type.register XSD : xsd ; import generators ; class cpp-generator : generator { rule __init__ ( * : * ) { generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ; } # after the actions is executed, get a list of the generated targets that # results from this action rule generated-targets ( sources * : property-set : project name ?) { local leafs ; local temp = [ virtual-targets.traverse $(sources[1]) : : include-sources ] ; for local f in $(temp) { leafs += $(f) ; } return [ generator.generated-targets $(sources) $(leafs) : $(property-set) : $(project) $(name) ] ; } } generators.register [ new cpp-generator xsd2cpp.xsd2cpp : XSD : CPP ] ; actions xsd2cpp { # run RW's xsd2cpp command over the source and produce a lot of C++ code. xsd2cpp -STL "$(>)" } ---- end file boost-build/tools/xsd2cpp.jam ---- If anyone has a clue how to do this, please let me know. Or if I've going about this the wrong way, I would like to here that as well. Thanks for any assistance with this, greg

Hi Gregory,
Please post Boost.Build related questions to the jamboost@yahoogroups.com mailining list. You can also access it via newsgroups. See http://boost.org/boost-build2/ for the links.
The biggest question is whether the tool produces files with some specific names, or files with names depending on the content of source file. The first case is simple, and the second case can be nontrivial -- how can we know which files were produced, then? - Volodya
participants (2)
-
Sylvain, Gregory M
-
Vladimir Prus