From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-06-06 08:02:59
There's some information about how custom generators are used currently,
to help with discussion.
1. In qt.jam --- the generator creates CPP from to input sources, and returns
the created source, as well as one of inputs.
2. In stage.jam --- the generator is used to create STAGED_EXE from EXE.
In some sense it's top-level generator --- but there's no main target it
3. In prebuilt.jam --- the generator is used to create all main, and is
activated whenever there's <file> property. It's again top-level generator,
but it's selected as result of matching process. IOW, it's not determined
from the main target type.
4. In builtin.jam --- lib-generator
Just top-level generator, specific to LIB type.
5. In builtin.jam --- searched-lib-generator
Almost top-level generator, but it's only used by lib-generator -- IOW,
not related to main target
6. In builtin.jam -- C-compiling-generator
Pretty dump. Used only to customize class used for 'action'.
7. In builtin.jam -- linking-generator. Adds dependency to all <library>
8. In my example --- top-level generator which does pretty complicated things.
So, my conclusion is: to support current use cases we need variation on the
top-level. IOW, user must be able to specify custom code to create targets of
type X. OTOH, seems like variability during the generators search (i.e.
"smart" 'run' rule of generators), is not used much.
The optional properties for generator seem to be used only in
tests/generators-test/project-root.jam. Though I'm not sure about
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk