Problem specifying a requirement for a toolset

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Problem specifying a requirement for a toolset

Boost - Build mailing list
I will use gcc as an example, since it allows for possible toolset
requirements, but any toolset with requirements works the same way. In
my user-config.jam, let us say for simplification purposes, I have:

using gcc : 9.2 : command_invoking_9.2 ;
using gcc : 9.1 : command_invoking_9.1 ;

I can do:

b2 toolset=gcc-9.2 address-model=32

without problems. Now let us supposed I add address model requirements
to my user-config.jam, as in:

using gcc : 9.2 : command_invoking_9.2 : : <address-model>32 ;
using gcc : 9.1 : command_invoking_9.1 : : <address-model>32 ;

and now I run the same command line:

b2 toolset=gcc-9.2 address-model=32

only to now get:

Performing configuration checks

     - default address-model    : none
     - default architecture     : none
in expand-composites from module feature
error: explicitly-specified values of non-free feature
<toolset-gcc:version> conflict
error: existing values: 9.1 9.2
error: value from expanding  <toolset-gcc:version>9.2 : 9.2
in feature.expand from module feature
in evaluate-requirements from module targets
in common-properties2 from module targets
in targets.common-properties from module targets
in [hidden email] from module object(alias-target-class)@8350
in generate-really from module object(main-target)@8438
in [hidden email] from module object(main-target)@8438
in load from module build-system
in import from module modules
in boost-build from module
E:\Programming\VersionControl\modular-boost\boost-build.jam:17: in
module scope from module

Really ? I am telling Boost Build the gcc version when I invoke b2. Dois
boost Build really mean to say that a toolset name, even with different
versions of a given toolset, must have different requirements for b2 to
pick the right one to use ? That is pretty awful and clearly keeps me
from specifying different versions of the same toolset with the same
requirements. Which I find endlessly amusing since I can obviously
specify different versions of a toolset in my user-config as long as I
specify no requirements at all, when requirements are allowed.

Unsubscribe & other changes: