| Version 4 (modified by , 19 years ago) ( diff ) |
|---|
Proposal for "Do the Right Thing" Alternative Selection
This page describes a proposal for a change to the way target alternatives are selected.
Motivation
It seems there are a significant number of bjam invocations for which there is a sensible interpretation, but for which Boost.Build currently generates an error instead and refuses to build.
Example 1
Given the following Jamfile:
lib a : a.cpp : <debug-symbols>off ; # alternative 1 lib a : a-dbg.cpp : <debug-symbols>on <profiling>on ; # alternative 2
In response to
bjam debug-symbols=on
the result is
error: No best alternative for ./a
next alternative: required properties: <debug-symbols>off
not matched
next alternative: required properties: <debug-symbols>on <profiling>on
not matched
My claim is that it would be more appropriate to build the 2nd alternative because it is a better match for the explicit build request.
Boost.Build generates an error because the default value of the <profiling> feature is off. It combines that default value with the explicit build request to get <debug-symbols>on <profiling>off, which does not match the 2nd alternative.
