
On Mar 29, 2011 7:05 PM, "Dave Abrahams" <dave@boostpro.com> wrote:
Part of that is because the design tries to do too much. Specifically, the production of multiple build configurations with a single build command offers most users no benefit in exchange for the enormous complication it causes in design, implementation, and especially in writing build instructions (Jamfiles in our case). For the few who do benefit from the feature, the ability to build multiple configurations easily could have been written as another layer that invokes the build system multiple times.
I'm not a BB expert, but it seems to me that the ability to target multiple metatargets at once is a small step away from being able to build the same target (cpp/obj/lib/alias) with different properties depending on how the dependent code needs to use it. But the latter is a huge leap from the one-target-one-command paradigm that so many are used to but that is so cumbersome for large C++ projects, especially ones that have interactions with other languages. Do you have a more concrete idea of how a multi-layer approach would simplify Jamfiles or build invocation? I don't see it getting rid of the basic sources/requirements/default-build/usage-requirements pattern. And whether I'm building multiple targets or not, I still love being able to use platform independent syntax: bjam path/to/foo//bar link=shared address-model=32 -Matt